X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=40a0c8b0826c96b67cd0ea6d6e9cace0f19a2d04;hp=67415cc3b7f658cbf8255e5424d81be1351e8535;hb=e88a5b5f44c84f3892c120b98e6a376032a32644;hpb=7bde124b28584f12341f7b9c00b0e7cbe00c3b24 diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 67415cc3..40a0c8b0 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include "chatitem.h" #include "chatline.h" @@ -38,9 +39,9 @@ const qreal minContentsWidth = 200; -class ClearWebPreviewEvent : public QEvent { +class ChatScene::ClearWebPreviewEvent : public QEvent { public: - inline ClearWebPreviewEvent() : QEvent(QEvent::User) {} + inline ClearWebPreviewEvent() : QEvent((QEvent::Type)ChatScene::ClearWebPreviewEventType) {} }; ChatScene::ChatScene(QAbstractItemModel *model, const QString &idString, qreal width, QObject *parent) @@ -93,6 +94,9 @@ ChatScene::ChatScene(QAbstractItemModel *model, const QString &idString, qreal w webPreview.delayTimer.setSingleShot(true); connect(&webPreview.delayTimer, SIGNAL(timeout()), this, SLOT(showWebPreview())); + + // installEventFilter(this); + // setItemIndexMethod(QGraphicsScene::NoIndex); } ChatScene::~ChatScene() { @@ -202,7 +206,6 @@ void ChatScene::rowsInserted(const QModelIndex &index, int start, int end) { if(atBottom || (!atTop && !moveTop)) { emit lastLineChanged(_lines.last(), h); } - } void ChatScene::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) { @@ -557,14 +560,17 @@ void ChatScene::updateSceneRect(qreal width) { void ChatScene::updateSceneRect(const QRectF &rect) { _sceneRect = rect; setSceneRect(rect); + update(); } void ChatScene::customEvent(QEvent *event) { - if(event->type() != QEvent::User) + switch(event->type()) { + case ClearWebPreviewEventType: + clearWebPreviewEvent((ClearWebPreviewEvent *)event); + break; + default: return; - - event->accept(); - clearWebPreviewEvent(); + } } void ChatScene::loadWebPreview(ChatItem *parentItem, const QString &url, const QRectF &urlRect) { @@ -620,8 +626,9 @@ void ChatScene::showWebPreview() { #endif } -void ChatScene::clearWebPreviewEvent() { +void ChatScene::clearWebPreviewEvent(ClearWebPreviewEvent *event) { #ifdef HAVE_WEBKIT + event->accept(); if(webPreview.previewItem) { if(webPreview.previewItem->scene()) { removeItem(webPreview.previewItem); @@ -634,3 +641,9 @@ void ChatScene::clearWebPreviewEvent() { webPreview.urlRect = QRectF(); #endif } + +bool ChatScene::eventFilter(QObject *watched, QEvent *event) { + qDebug() << watched << event; + return false; +} +