Fix doubleclicks in empty spaces in ChatMonitorView as well, thanks al_!
authorManuel Nickschas <sputnick@quassel-irc.org>
Wed, 13 Aug 2008 12:33:44 +0000 (14:33 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 13 Aug 2008 12:33:44 +0000 (14:33 +0200)
src/qtui/chatmonitorview.cpp

index e004e0c..3f31591 100644 (file)
@@ -43,7 +43,7 @@ ChatMonitorView::ChatMonitorView(ChatMonitorFilter *filter, QWidget *parent)
 void ChatMonitorView::contextMenuEvent(QContextMenuEvent *event) {
   if(scene()->sectionByScenePos(event->pos()) != ChatLineModel::SenderColumn)
     return;
 void ChatMonitorView::contextMenuEvent(QContextMenuEvent *event) {
   if(scene()->sectionByScenePos(event->pos()) != ChatLineModel::SenderColumn)
     return;
-  
+
   int showFields = _filter->showFields();
 
   QMenu contextMenu(this);
   int showFields = _filter->showFields();
 
   QMenu contextMenu(this);
@@ -51,7 +51,7 @@ void ChatMonitorView::contextMenuEvent(QContextMenuEvent *event) {
   showNetworkAction->setCheckable(true);
   showNetworkAction->setChecked(showFields & ChatMonitorFilter::NetworkField);
   showNetworkAction->setData(ChatMonitorFilter::NetworkField);
   showNetworkAction->setCheckable(true);
   showNetworkAction->setChecked(showFields & ChatMonitorFilter::NetworkField);
   showNetworkAction->setData(ChatMonitorFilter::NetworkField);
-  
+
   QAction *showBufferAction = contextMenu.addAction(tr("Show buffer name"), this, SLOT(showFieldsChanged(bool)));
   showBufferAction->setCheckable(true);
   showBufferAction->setChecked(showFields & ChatMonitorFilter::BufferField);
   QAction *showBufferAction = contextMenu.addAction(tr("Show buffer name"), this, SLOT(showFieldsChanged(bool)));
   showBufferAction->setCheckable(true);
   showBufferAction->setChecked(showFields & ChatMonitorFilter::BufferField);
@@ -66,12 +66,17 @@ void ChatMonitorView::mouseDoubleClickEvent(QMouseEvent *event) {
     return;
   }
 
     return;
   }
 
-  event->accept();
   ChatItem *chatItem = dynamic_cast<ChatItem *>(itemAt(event->pos()));
   ChatItem *chatItem = dynamic_cast<ChatItem *>(itemAt(event->pos()));
+  if(!chatItem) {
+    event->ignore();
+    return;
+  }
+
+  event->accept();
   BufferId bufferId = chatItem->data(MessageModel::BufferIdRole).value<BufferId>();
   if(!bufferId.isValid())
     return;
   BufferId bufferId = chatItem->data(MessageModel::BufferIdRole).value<BufferId>();
   if(!bufferId.isValid())
     return;
-  
+
   QModelIndex bufferIdx = Client::networkModel()->bufferIndex(bufferId);
   if(!bufferIdx.isValid())
     return;
   QModelIndex bufferIdx = Client::networkModel()->bufferIndex(bufferId);
   if(!bufferIdx.isValid())
     return;
@@ -87,5 +92,5 @@ void ChatMonitorView::showFieldsChanged(bool checked) {
   if(checked)
     _filter->addShowField(showAction->data().toInt());
   else
   if(checked)
     _filter->addShowField(showAction->data().toInt());
   else
-    _filter->removeShowField(showAction->data().toInt());    
+    _filter->removeShowField(showAction->data().toInt());
 }
 }