FIRE-36707 Configurable color for offline contacts in contact sets lists

Signed-off-by: PanteraPolnocy <panterapolnocy@gmail.com>
This commit is contained in:
PanteraPolnocy
2026-06-03 17:36:17 +02:00
parent 40d9f1b4b2
commit 38ff7ade77
7 changed files with 74 additions and 2 deletions
+27
View File
@@ -487,6 +487,33 @@
<key>Value</key>
<integer>0</integer>
</map>
<key>FSContactSetsListColorizeOffline</key>
<map>
<key>Comment</key>
<string>Whether to use a custom color for offline contacts in Contact Sets lists. A custom contact set color takes precedence when set.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>FSContactSetsListOfflineColor</key>
<map>
<key>Comment</key>
<string>Custom color for offline contacts in Contact Sets lists when FSContactSetsListColorizeOffline is enabled.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Color4</string>
<key>Value</key>
<array>
<real>0.5</real>
<real>0.5</real>
<real>0.5</real>
<real>1.0</real>
</array>
</map>
<key>FSMuteAllGroups</key>
<map>
<key>Comment</key>
@@ -66,6 +66,9 @@ bool FSFloaterContactSetConfiguration::postBuild()
mGlobalSwatch = getChild<LLColorSwatchCtrl>("global_swatch");
mGlobalSwatch->setCommitCallback(boost::bind(&FSFloaterContactSetConfiguration::onCommitDefaultColor, this));
mOfflineSwatch = getChild<LLColorSwatchCtrl>("offline_swatch");
mOfflineSwatch->setCommitCallback(boost::bind(&FSFloaterContactSetConfiguration::onCommitOfflineColor, this));
mNotificationCheckBox = getChild<LLCheckBoxCtrl>("show_set_notifications");
mNotificationCheckBox->setCommitCallback(boost::bind(&FSFloaterContactSetConfiguration::onCommitSetNotifications, this));
@@ -103,6 +106,7 @@ void FSFloaterContactSetConfiguration::onOpen(const LLSD& target_set)
mSetSwatch->set(LGGContactSets::getInstance()->getSetColor(mContactSet), true);
mGlobalSwatch->set(LGGContactSets::getInstance()->getDefaultColor(), true);
mOfflineSwatch->set(gSavedSettings.getColor4("FSContactSetsListOfflineColor"), true);
mNotificationCheckBox->set(LGGContactSets::getInstance()->getNotifyForSet(mContactSet));
mSortByOnlineStatusCheckBox->set(LGGContactSets::getInstance()->getSortByOnlineStatusForSet(mContactSet));
@@ -140,6 +144,11 @@ void FSFloaterContactSetConfiguration::onCommitDefaultColor()
LGGContactSets::getInstance()->setDefaultColor(mGlobalSwatch->get());
}
void FSFloaterContactSetConfiguration::onCommitOfflineColor()
{
gSavedSettings.setColor4("FSContactSetsListOfflineColor", mOfflineSwatch->get());
}
void FSFloaterContactSetConfiguration::onCommitSetAutoresponseBusy()
{
LGGContactSets::getInstance()->setAutoresponseForSet(mContactSet, ContactSetAutoresponseMode::BUSY, mAutoresponseBusyEnabledCheckBox->getValue().asBoolean(), mAutoresponseBusyEditor->getText());
@@ -53,6 +53,7 @@ private:
void onCommitSetNotifications();
void onCommitSetSortByOnlineStatus();
void onCommitDefaultColor();
void onCommitOfflineColor();
void onCommitSetAutoresponseBusy();
void onCommitSetAutoresponseMode();
void onCommitSetAutoresponseNonFriends();
@@ -74,6 +75,7 @@ private:
LLTextEditor* mAutoresponseNonFriendsEditor;
LLColorSwatchCtrl* mSetSwatch;
LLColorSwatchCtrl* mGlobalSwatch;
LLColorSwatchCtrl* mOfflineSwatch;
LLLineEditor* mSetName;
LLButton* mRenameButton;
+5
View File
@@ -218,6 +218,11 @@ LLAvatarList::LLAvatarList(const Params& p)
// <FS:PP> FIRE-32748 Colorize Friends List with Contact Sets
gSavedSettings.getControl("FSContactSetsColorizeFriends")->getSignal()->connect(boost::bind(&LLAvatarList::refreshNames, this));
// <FS:PP> FIRE-36707 Configurable color for offline contacts in contact sets lists
gSavedSettings.getControl("FSContactSetsListColorizeOffline")->getSignal()->connect(boost::bind(&LLAvatarList::refreshNames, this));
gSavedSettings.getControl("FSContactSetsListOfflineColor")->getSignal()->connect(boost::bind(&LLAvatarList::refreshNames, this));
// </FS:PP>
// <FS:Ansariel> Update voice volume slider on RLVa shownames restriction update
mRlvBehaviorCallbackConnection = gRlvHandler.setBehaviourCallback(boost::bind(&LLAvatarList::updateRlvRestrictions, this, _1, _2));
}
+9 -1
View File
@@ -53,6 +53,7 @@
#include "lfsimfeaturehandler.h" // <FS:CR> Opensim
#include "llavatarlist.h"
#include "lggcontactsets.h" // <FS:PP> FIRE-32748 Colorize Friends List with Contact Sets
#include "llviewercontrol.h" // <FS:PP> FIRE-36707 Configurable color for offline contacts in contact sets lists
bool LLAvatarListItem::sStaticInitialized = false;
S32 LLAvatarListItem::sLeftPadding = 0;
@@ -609,7 +610,14 @@ void LLAvatarListItem::setNameInternal(const std::string& name, const std::strin
{
avatar_name_style.font = params.group_moderator_style().font();
}
if (params.online_style.isProvided() && params.online_style().color.isProvided())
static LLCachedControl<bool> fsContactSetsListColorizeOffline(gSavedSettings, "FSContactSetsListColorizeOffline", false);
if (fsContactSetsListColorizeOffline && mOnlineStatus != E_ONLINE)
{
static LLCachedControl<LLColor4> fsContactSetsListOfflineColor(gSavedSettings, "FSContactSetsListOfflineColor");
avatar_name_style.color = fsContactSetsListOfflineColor();
}
else if (params.online_style.isProvided() && params.online_style().color.isProvided())
{
avatar_name_style.color = params.online_style().color();
}
@@ -101,8 +101,27 @@ Global Settings:
name="global_swatch"
tool_tip="Click to open Color Picker"
width="100" />
<color_swatch
can_apply_immediately="true"
follows="left|top"
height="55"
label=""
top_delta="0"
left_delta="120"
name="offline_swatch"
tool_tip="Color used for offline contacts in Contact Sets lists that do not belong to any Contact Set. A custom Contact Set color takes precedence."
width="100" />
<check_box
follows="left|top"
top_pad="-16"
height="12"
initial_value="false"
label="Custom offline contact color"
name="FSContactSetsListColorizeOffline"
width="120"
control_name="FSContactSetsListColorizeOffline"/>
<text
top_pad="-2"
top_pad="2"
follows="left|top"
height="16"
left="15"
@@ -18,6 +18,8 @@
Ustawienia globalne:
</text>
<color_swatch label="Domyślny kolor" name="global_swatch" tool_tip="Kliknij, aby otworzyć paletę kolorow" />
<color_swatch name="offline_swatch" tool_tip="Kolor używany dla kontaktów offline na listach zestawów kontaktów, które nie należą do żadnego zestawu. Kolor niestandardowego zestawu kontaktów ma pierwszeństwo." />
<check_box label="Własny kolor kontaktów offline" name="FSContactSetsListColorizeOffline" />
<text name="label_online">
Powiadomienia online:
</text>