// BufferView / NickView settings
UiStyleSettings s;
_showBufferViewIcons = _showNickViewIcons = s.value("ShowItemViewIcons", true).toBool();
- s.notify("ShowItemViewIcons", this, SLOT(showItemViewIconsChanged()));
+ s.notify("ShowItemViewIcons", this, SLOT(showItemViewIconsChanged(QVariant)));
+
+ _allowMircColors = s.value("AllowMircColors", true).toBool();
+ s.notify("AllowMircColors", this, SLOT(allowMircColorsChanged(QVariant)));
loadStyleSheet();
}
}
}
+void UiStyle::allowMircColorsChanged(const QVariant &v) {
+ _allowMircColors = v.toBool();
+ emit changed();
+}
+
/******** ItemView Styling *******/
-void UiStyle::showItemViewIconsChanged() {
- UiStyleSettings s;
- _showBufferViewIcons = _showNickViewIcons = s.value("ShowItemViewIcons").toBool();
+void UiStyle::showItemViewIconsChanged(const QVariant &v) {
+ _showBufferViewIcons = _showNickViewIcons = v.toBool();
}
QVariant UiStyle::bufferViewItemData(const QModelIndex &index, int role) const {
// Now we handle color codes
// We assume that those can't be combined with subelement and message types.
- if(ftype & 0x00400000)
- mergeSubElementFormat(fmt, ftype & 0x0f400000, label); // foreground
- if(ftype & 0x00800000)
- mergeSubElementFormat(fmt, ftype & 0xf0800000, label); // background
- if((ftype & 0x00c00000) == 0x00c00000)
- mergeSubElementFormat(fmt, ftype & 0xffc00000, label); // combination
+ if(_allowMircColors) {
+ if(ftype & 0x00400000)
+ mergeSubElementFormat(fmt, ftype & 0x0f400000, label); // foreground
+ if(ftype & 0x00800000)
+ mergeSubElementFormat(fmt, ftype & 0xf0800000, label); // background
+ if((ftype & 0x00c00000) == 0x00c00000)
+ mergeSubElementFormat(fmt, ftype & 0xffc00000, label); // combination
+ }
// URL
if(ftype & Url)
if(s[pos+1] == 'D') code += s[pos+2];
FormatType ftype = formatType(code);
if(ftype == Invalid) {
+ pos++;
qWarning() << (QString("Invalid format code in string: %1").arg(s));
continue;
}
QString UiStyle::mircToInternal(const QString &mirc_) {
QString mirc = mirc_;
mirc.replace('%', "%%"); // escape % just to be sure
+ mirc.replace('\t', " "); // tabs break layout, also this is italics in Konversation
mirc.replace('\x02', "%B");
mirc.replace('\x0f', "%O");
mirc.replace('\x12', "%R");
QString txt = UiStyle::mircToInternal(contents());
QString bufferName = bufferInfo().bufferName();
bufferName.replace('%', "%%"); // well, you _can_ have a % in a buffername apparently... -_-
+ host.replace('%', "%%"); // hostnames too...
+ user.replace('%', "%%"); // and the username...
+ nick.replace('%', "%%"); // ... and then there's totally RFC-violating servers like justin.tv m(
const int maxNetsplitNicks = 15;
QString t;