void Bb10Ui::onChannelListTriggered(const QVariantList index) { // Headers are not clickable if (index.length() < 2) return; QModelIndex modelIndex = qobject_cast<DataModelAdapter*>(m_channelListView->dataModel())->getQModelIndex(index); BufferInfo bufferInfo = modelIndex.data(NetworkModel::BufferInfoRole).value<BufferInfo>(); BufferId id = bufferInfo.bufferId(); if (!id.isValid()) return; QString bufferName = bufferInfo.bufferName(); qDebug() << "xxxxx Bb10Ui::onChannelListTriggered bufferInfo = " << bufferInfo << " index = " << index << " modelIndex = " << modelIndex; ChatView *view = qobject_cast<ChatView *>(m_chatViews.value(id)); if (!view) { view = new ChatView(id, bufferName); m_chatViews[id] = view; } m_currentBufferId = id; Client::bufferModel()->switchToBuffer(id); Client::networkModel()->clearBufferActivity(id); Client::setBufferLastSeenMsg(id, view->getLastMsgId()); Client::backlogManager()->checkForBacklog(id); navPanePush(view->getPage()); // ask channelListView to update the appearance qobject_cast<DataModelAdapter*>(m_channelListView->dataModel())->handleBufferModelDataChanged(modelIndex, modelIndex); }