}
// Check for the sender auto coloring option
- _senderAutoColor = s.value("Flags/senderAutoColor", QVariant(true)).toBool();
+ _senderAutoColor = s.value("Colors/SenderAutoColor", false).toBool();
// Now initialize the mapping between FormatCodes and FormatTypes...
_formatCodes["%O"] = None;
void UiStyle::setSenderAutoColor( bool state ) {
_senderAutoColor = state;
UiStyleSettings s(_settingsKey);
- s.setValue("Flags/senderAutoColor", QVariant(state));
+ s.setValue("Colors/SenderAutoColor", QVariant(state));
}
QTextCharFormat UiStyle::format(FormatType ftype, Settings::Mode mode) const {
}
UiStyle::FormatType UiStyle::StyledMessage::senderFormat() const {
- quint16 hash;
switch(type()) {
case Message::Plain:
// To produce random like but stable nick colorings some sort of hashing should work best.
// In this case we just use the qt function qChecksum which produces a
// CRC16 hash. This should be fast and 16 bits are more than enough.
- hash = qChecksum(_sender.toAscii().data(), _sender.toAscii().size());
- return (UiStyle::FormatType)((((hash % 21) + 1) << 24) + 0x200);
+ {
+ QString nick = nickFromMask(sender()).toLower();
+ if(!nick.isEmpty()) {
+ int chopCount = 0;
+ while(nick[nick.count() - 1 - chopCount] == '_') {
+ chopCount++;
+ }
+ nick.chop(chopCount);
+ }
+ quint16 hash = qChecksum(nick.toAscii().data(), nick.toAscii().size());
+ return (UiStyle::FormatType)((((hash % 12) + 1) << 24) + 0x200); // FIXME: amount of sender colors hardwired
+ }
case Message::Notice:
return UiStyle::NoticeMsg; break;
case Message::Server: