Add buffer-specific actions to ChatView's context menu
[quassel.git] / src / qtui / chatscene.cpp
index 6e4dda1..f83cfe8 100644 (file)
@@ -48,7 +48,7 @@ ChatScene::ChatScene(QAbstractItemModel *model, const QString &idString, qreal w
     _chatView(parent),
     _idString(idString),
     _model(model),
-    _singleBufferScene(false),
+    _singleBufferId(BufferId()),
     _sceneRect(0, 0, width, 0),
     _firstLineRow(-1),
     _viewportHeight(0),
@@ -61,8 +61,8 @@ ChatScene::ChatScene(QAbstractItemModel *model, const QString &idString, qreal w
     _leftButtonPressed(false)
 {
   MessageFilter *filter = qobject_cast<MessageFilter*>(model);
-  if(filter) {
-    _singleBufferScene = filter->isSingleBufferFilter();
+  if(filter && filter->isSingleBufferFilter()) {
+    _singleBufferId = filter->singleBufferId();
   }
 
   ChatViewSettings defaultSettings;
@@ -624,7 +624,13 @@ void ChatScene::mousePressEvent(QGraphicsSceneMouseEvent *event) {
       clearSelection();
     }
     if(_clickMode != NoClick && _clickTimer.isActive()) {
-      _clickMode = (ClickMode)(_clickMode == TripleClick ? DoubleClick : _clickMode + 1);
+      switch(_clickMode) {
+        case NoClick: _clickMode = SingleClick; break;
+        case SingleClick: _clickMode = DoubleClick; break;
+        case DoubleClick: _clickMode = TripleClick; break;
+        case TripleClick: _clickMode = DoubleClick; break;
+        case DragStartClick: break;
+      }
       handleClick(Qt::LeftButton, _clickPos);
     } else {
       _clickMode = SingleClick;