#define CHATSCENE_H_
#include <QAbstractItemModel>
+#include <QClipboard>
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QSet>
NoClick,
SingleClick,
DoubleClick,
- TripleClick
+ TripleClick,
+ DragStartClick
};
ChatScene(QAbstractItemModel *model, const QString &idString, qreal width, ChatView *parent);
inline void setSenderCutoffMode(CutoffMode mode) { _cutoffMode = mode; }
QString selection() const;
- inline bool hasGlobalSelection() const { return _selectionStart >= 0; }
- inline bool isGloballySelecting() const { return _isSelecting; }
+ bool hasSelection() const;
+ bool hasGlobalSelection() const;
bool isPosOverSelection(const QPointF &) const;
+ bool isGloballySelecting() const;
void initiateDrag(QWidget *source);
bool isScrollingAllowed() const;
void startGlobalSelection(ChatItem *item, const QPointF &itemPos);
void clearGlobalSelection();
void clearSelection();
-
- void putToClipboard(const QString &);
+ void selectionToClipboard(QClipboard::Mode = QClipboard::Clipboard);
void requestBacklog();
void mouseMoveWhileSelecting(const QPointF &scenePos);
protected:
+ virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *contextMenuEvent);
virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent);
virtual void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent);
virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent);
int _firstSelectionRow;
bool _isSelecting;
- bool _showWebPreview;
-
QTimer _clickTimer;
ClickMode _clickMode;
QPointF _clickPos;
bool _clickHandled;
bool _leftButtonPressed;
+ bool _showWebPreview;
+
struct WebPreview {
ChatItem *parentItem;
QGraphicsItem *previewItem;