X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatitem.cpp;h=9fadc127a7612c84590af3ae377f142167a70f0e;hp=fb5d6faa5fb23a5f14fc9b2c9e2dfdc5738746c9;hb=00e1a9c29e792ba4d65dba21b7ba04131bcb13bc;hpb=6a835281b265df6a06b7f41109ad2d449899fed0 diff --git a/src/qtui/chatitem.cpp b/src/qtui/chatitem.cpp index fb5d6faa..9fadc127 100644 --- a/src/qtui/chatitem.cpp +++ b/src/qtui/chatitem.cpp @@ -18,12 +18,16 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ +#include "chatitem.h" + +#include +#include + #include #include #include #include #include -#include #include #include #include @@ -31,11 +35,11 @@ #include "buffermodel.h" #include "bufferview.h" -#include "chatitem.h" #include "chatline.h" #include "chatlinemodel.h" #include "chatview.h" #include "contextmenuactionprovider.h" +#include "icon.h" #include "mainwin.h" #include "qtui.h" #include "qtuistyle.h" @@ -285,36 +289,92 @@ void ChatItem::overlayFormat(UiStyle::FormatList &fmtList, quint16 start, quint1 QVector ChatItem::additionalFormats() const { - return selectionFormats(); -} + // Calculate formats to overlay (only) if there's a selection, and/or a hovered clickable + if (!hasSelection() && !hasActiveClickable()) { + return {}; + } + using Label = UiStyle::MessageLabel; + using Format = UiStyle::Format; -QVector ChatItem::selectionFormats() const -{ - if (!hasSelection()) - return QVector(); + Label itemLabel = data(ChatLineModel::MsgLabelRole).value