-//inlines regarding ContentsChatItemPrivate
-ChatItemPrivate *ContentsChatItem::newPrivateData() {
- return new ContentsChatItemPrivate(createLayout(QTextOption::WrapAnywhere), findClickables(), this);
-}
-ContentsChatItemPrivate *ContentsChatItem::privateData() const { return (ContentsChatItemPrivate *)ChatItem::privateData(); }
-
-class ContentsChatItem::WrapColumnFinder {
-public:
- WrapColumnFinder(ChatItem *parent);
- ~WrapColumnFinder();
+//! Acts as a proxy for Action signals targetted at a ContentsChatItem
+/** Since a ChatItem is not a QObject, hence cannot receive signals, we use a static ActionProxy
+ * as a receiver instead. This avoids having to handle ChatItem actions (e.g. context menu entries)
+ * outside the ChatItem.
+ */
+class ContentsChatItem::ActionProxy : public QObject {
+ Q_OBJECT