1
0
Fork 0

Add support for mouse with horizontal scrolling capability

This commit is contained in:
torusrxxx 2021-07-14 20:28:51 +08:00
parent 1aa5027ccf
commit c705f84f86
No known key found for this signature in database
GPG Key ID: A795C73A0F1CFADD
1 changed files with 16 additions and 6 deletions

View File

@ -571,27 +571,37 @@ void AbstractTableView::mouseDoubleClickEvent(QMouseEvent* event)
void AbstractTableView::wheelEvent(QWheelEvent* event)
{
int numDegrees = event->delta() / 8;
int numSteps = numDegrees / 15;
QPoint numDegrees = event->angleDelta() / 8;
QPoint numSteps = numDegrees / 15;
if(event->modifiers() == Qt::NoModifier)
{
if(numSteps > 0)
if(numSteps.y() > 0)
{
if(mMouseWheelScrollDelta > 0)
for(int i = 0; i < mMouseWheelScrollDelta * numSteps; i++)
for(int i = 0; i < mMouseWheelScrollDelta * numSteps.y(); i++)
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
else // -1 : one screen at a time
verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepSub);
}
else
else if(numSteps.y() < 0)
{
if(mMouseWheelScrollDelta > 0)
for(int i = 0; i < mMouseWheelScrollDelta * numSteps * -1; i++)
for(int i = 0; i < mMouseWheelScrollDelta * numSteps.y() * -1; i++)
verticalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
else // -1 : one screen at a time
verticalScrollBar()->triggerAction(QAbstractSlider::SliderPageStepAdd);
}
else if(numSteps.x() > 0)
{
for(int i = 0; i < 20 * numSteps.x(); i++)
horizontalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepSub);
}
else if(numSteps.x() < 0)
{
for(int i = 0; i < 20 * numSteps.x() * -1; i++)
horizontalScrollBar()->triggerAction(QAbstractSlider::SliderSingleStepAdd);
}
}
else if(event->modifiers() == Qt::ControlModifier) // Zoom
Config()->zoomFont("AbstractTableView", event);