}
}
+void SenderChatItem::handleClick(const QPointF &pos, ChatScene::ClickMode clickMode) {
+ if(clickMode == ChatScene::DoubleClick) {
+ BufferInfo curBufInfo = Client::networkModel()->bufferInfo(data(MessageModel::BufferIdRole).value<BufferId>());
+ QString nick = data(MessageModel::EditRole).toString();
+ // check if the nick is a valid ircUser
+ if(!nick.isEmpty() && Client::network(curBufInfo.networkId())->ircUser(nick)) {
+ BufferId targetBufId = Client::networkModel()->bufferId(curBufInfo.networkId(), nick);
+ if(targetBufId.isValid()) { // querybuffer exists
+ Client::bufferModel()->switchToBuffer(targetBufId);
+ }
+ else { // we create it
+ Client::userInput(curBufInfo, QString("/QUERY %1").arg(nick));
+ }
+ }
+ }
+ else
+ ChatItem::handleClick(pos, clickMode);
+}
+
// ************************************************************
// ContentsChatItem
// ************************************************************
public:
SenderChatItem(const QRectF &boundingRect, ChatLine *parent) : ChatItem(boundingRect, parent) {}
virtual inline ChatLineModel::ColumnType column() const { return ChatLineModel::SenderColumn; }
+ virtual void handleClick(const QPointF &pos, ChatScene::ClickMode clickMode);
protected:
virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);