X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fbufferview.cpp;h=380828d3d43308945612dd88f9f0d6453f662f84;hp=b99f9905d1df174eea5825517deaa1d1269d5aac;hb=597705d895583bd2860fc117a7c73aa5cf86ae52;hpb=b709cbc76fc0bd0f14839b4c04ba8caf78d775f1 diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index b99f9905..380828d3 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -76,7 +76,7 @@ void BufferView::setModel(QAbstractItemModel *model) { QString sectionName; QAction *showSection; - for(int i = 0; i < model->columnCount(); i++) { + for(int i = 1; i < model->columnCount(); i++) { sectionName = (model->headerData(i, Qt::Horizontal, Qt::DisplayRole)).toString(); showSection = new QAction(sectionName, header()); showSection->setCheckable(true); @@ -212,7 +212,7 @@ void BufferView::showContextMenu(const QPoint &pos) { "data, from the core's database!").arg(bufferInfo.bufferName()), QMessageBox::Yes|QMessageBox::No, QMessageBox::No); if(res == QMessageBox::Yes) { - Client::bufferSyncer()->requestRemoveBuffer(bufferInfo.bufferId()); + Client::removeBuffer(bufferInfo.bufferId()); } } else if(result == whoBufferAction) { @@ -220,3 +220,27 @@ void BufferView::showContextMenu(const QPoint &pos) { } } +void BufferView::wheelEvent(QWheelEvent* event) +{ + int rowDelta = ( event->delta() > 0 ) ? -1 : 1; + QModelIndex currentIndex = selectionModel()->currentIndex(); + QModelIndex resultingIndex; + if( model()->hasIndex( currentIndex.row() + rowDelta, currentIndex.column(), currentIndex.parent() ) ) + { + resultingIndex = currentIndex.sibling( currentIndex.row() + rowDelta, currentIndex.column() ); + } + else //if we scroll into a the parent node... + { + QModelIndex parent = currentIndex.parent(); + QModelIndex aunt = parent.sibling( parent.row() + rowDelta, parent.column() ); + if( rowDelta == -1 ) + resultingIndex = aunt.child( model()->rowCount( aunt ) - 1, 0 ); + else + resultingIndex = aunt.child( 0, 0 ); + if( !resultingIndex.isValid() ) + return; + } + selectionModel()->setCurrentIndex( resultingIndex, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows ); + selectionModel()->select( resultingIndex, QItemSelectionModel::ClearAndSelect ); +} +