/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2016 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
layout->setTextOption(option);
QList<QTextLayout::FormatRange> formatRanges
- = QtUi::style()->toTextLayoutList(formatList(), layout->text().length(), data(ChatLineModel::MsgLabelRole).toUInt());
+ = QtUi::style()->toTextLayoutList(formatList(), layout->text().length(), data(ChatLineModel::MsgLabelRole).value<UiStyle::MessageLabel>());
layout->setAdditionalFormats(formatRanges);
}
}
-void ChatItem::overlayFormat(UiStyle::FormatList &fmtList, int start, int end, quint32 overlayFmt) const
+void ChatItem::overlayFormat(UiStyle::FormatList &fmtList, quint16 start, quint16 end, UiStyle::FormatType overlayFmt) const
{
- for (int i = 0; i < fmtList.count(); i++) {
+ for (size_t i = 0; i < fmtList.size(); i++) {
int fmtStart = fmtList.at(i).first;
- int fmtEnd = (i < fmtList.count()-1 ? fmtList.at(i+1).first : data(MessageModel::DisplayRole).toString().length());
+ int fmtEnd = (i < fmtList.size()-1 ? fmtList.at(i+1).first : data(MessageModel::DisplayRole).toString().length());
if (fmtEnd <= start)
continue;
// split the format if necessary
if (fmtStart < start) {
- fmtList.insert(i, fmtList.at(i));
+ fmtList.insert(fmtList.begin() + i, fmtList.at(i));
fmtList[++i].first = start;
}
if (end < fmtEnd) {
- fmtList.insert(i, fmtList.at(i));
+ fmtList.insert(fmtList.begin() + i, fmtList.at(i));
fmtList[i+1].first = end;
}
- fmtList[i].second |= overlayFmt;
+ fmtList[i].second.type |= overlayFmt;
}
}
if (!hasSelection())
return QVector<QTextLayout::FormatRange>();
- int start, end;
+ quint16 start, end;
if (_selectionMode == FullSelection) {
start = 0;
end = data(MessageModel::DisplayRole).toString().length();
UiStyle::FormatList fmtList = formatList();
- while (fmtList.count() > 1 && fmtList.at(1).first <= start)
- fmtList.removeFirst();
+ while (fmtList.size() > 1 && fmtList.at(1).first <= start)
+ fmtList.erase(fmtList.begin());
- fmtList.first().first = start;
+ fmtList.front().first = start;
- while (fmtList.count() > 1 && fmtList.last().first >= end)
- fmtList.removeLast();
+ while (fmtList.size() > 1 && fmtList.back().first >= end)
+ fmtList.pop_back();
- return QtUi::style()->toTextLayoutList(fmtList, end, UiStyle::Selected|data(ChatLineModel::MsgLabelRole).toUInt()).toVector();
+ return QtUi::style()->toTextLayoutList(fmtList, end, data(ChatLineModel::MsgLabelRole).value<UiStyle::MessageLabel>()|UiStyle::MessageLabel::Selected).toVector();
}
QFontMetricsF *ContentsChatItem::fontMetrics() const
{
- return QtUi::style()->fontMetrics(data(ChatLineModel::FormatRole).value<UiStyle::FormatList>().at(0).second, 0);
+ return QtUi::style()->fontMetrics(data(ChatLineModel::FormatRole).value<UiStyle::FormatList>().at(0).second.type, UiStyle::MessageLabel::None);
}
for (int i = 0; i < privateData()->clickables.count(); i++) {
Clickable click = privateData()->clickables.at(i);
if (click.type() == Clickable::Url) {
- overlayFormat(fmtList, click.start(), click.start() + click.length(), UiStyle::Url);
+ overlayFormat(fmtList, click.start(), click.start() + click.length(), UiStyle::FormatType::Url);
}
}
return fmtList;
void ContentsChatItem::showWebPreview(const Clickable &click)
{
-#ifndef HAVE_WEBKIT
+#if !defined HAVE_WEBKIT && !defined HAVE_WEBENGINE
Q_UNUSED(click);
#else
QTextLine line = layout()->lineForTextPosition(click.start());
void ContentsChatItem::clearWebPreview()
{
-#ifdef HAVE_WEBKIT
+#if defined HAVE_WEBKIT || defined HAVE_WEBENGINE
chatScene()->clearWebPreview(this);
#endif
}