modeprefix.patch
| src/uisupport/uistyle.cpp | ||
|---|---|---|
| 19 | 19 |
***************************************************************************/ |
| 20 | 20 |
#include <QApplication> |
| 21 | 21 | |
| 22 |
#include "client.h" |
|
| 22 | 23 |
#include "buffersettings.h" |
| 23 | 24 |
#include "iconloader.h" |
| 24 | 25 |
#include "qssparser.h" |
| ... | ... | |
| 687 | 688 |
return timestamp().toLocalTime().toString(UiStyle::timestampFormatString()); |
| 688 | 689 |
} |
| 689 | 690 | |
| 691 |
static QMap<char, QString> defaultSenderPrefixes() {
|
|
| 692 |
QMap<char, QString> map; |
|
| 693 |
map.insert( 'q', "~" ); |
|
| 694 |
map.insert( 'a', "&" ); |
|
| 695 |
map.insert( 'o', "@" ); |
|
| 696 |
map.insert( 'h', "%" ); |
|
| 697 |
map.insert( 'v', "+" ); |
|
| 698 |
return map; |
|
| 699 |
} |
|
| 700 | ||
| 701 |
static const QMap<char, QString> senderPrefixes = defaultSenderPrefixes(); |
|
| 702 | ||
| 690 | 703 |
QString UiStyle::StyledMessage::plainSender() const {
|
| 691 | 704 |
switch(type()) {
|
| 692 | 705 |
case Message::Plain: |
| ... | ... | |
| 698 | 711 |
} |
| 699 | 712 | |
| 700 | 713 |
QString UiStyle::StyledMessage::decoratedSender() const {
|
| 714 |
QString sender = plainSender(); |
|
| 715 |
if (sender.length() && bufferInfo().type() & BufferInfo::ChannelBuffer) {
|
|
| 716 |
const Network *net = Client::network(bufferInfo().networkId()); |
|
| 717 |
if (net) {
|
|
| 718 |
IrcChannel *channel = net->ircChannel(bufferInfo().bufferName()); |
|
| 719 |
if (channel) {
|
|
| 720 |
QString modes = channel->userModes(sender); |
|
| 721 |
if (modes.length() > 0) {
|
|
| 722 |
const char mode = modes.at(0).toAscii(); |
|
| 723 |
if (senderPrefixes.contains(mode)) {
|
|
| 724 |
sender = senderPrefixes[mode] + sender; |
|
| 725 |
} |
|
| 726 |
} |
|
| 727 |
} |
|
| 728 |
} |
|
| 729 |
} |
|
| 701 | 730 |
switch(type()) {
|
| 702 | 731 |
case Message::Plain: |
| 703 |
return tr("<%1>").arg(plainSender()); break;
|
|
| 732 |
return tr("<%1>").arg(sender); break;
|
|
| 704 | 733 |
case Message::Notice: |
| 705 |
return tr("[%1]").arg(plainSender()); break;
|
|
| 734 |
return tr("[%1]").arg(sender); break;
|
|
| 706 | 735 |
case Message::Action: |
| 707 | 736 |
return tr("-*-"); break;
|
| 708 | 737 |
case Message::Nick: |
| ... | ... | |
| 736 | 765 |
case Message::Invite: |
| 737 | 766 |
return tr("->"); break;
|
| 738 | 767 |
default: |
| 739 |
return tr("%1").arg(plainSender());
|
|
| 768 |
return tr("%1").arg(sender);
|
|
| 740 | 769 |
} |
| 741 | 770 |
} |
| 742 | 771 | |
| 743 |
- |
|