mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-24 11:12:27 -04:00
Use mouse wheel to zoom in / out of charts.
This commit is contained in:
parent
3bdba94921
commit
c1a2c5cbab
@ -1201,12 +1201,49 @@ bool SIDGUI::eventFilter(QObject *obj, QEvent *event)
|
|||||||
{
|
{
|
||||||
if (event->type() == QEvent::ContextMenu)
|
if (event->type() == QEvent::ContextMenu)
|
||||||
{
|
{
|
||||||
|
// Show context menu on chart for GRBs/Flares
|
||||||
QContextMenuEvent *contextEvent = static_cast<QContextMenuEvent *>(event);
|
QContextMenuEvent *contextEvent = static_cast<QContextMenuEvent *>(event);
|
||||||
|
|
||||||
showContextMenu(contextEvent);
|
showContextMenu(contextEvent);
|
||||||
contextEvent->accept();
|
contextEvent->accept();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if (event->type() == QEvent::Wheel)
|
||||||
|
{
|
||||||
|
// Use wheel to zoom in / out of X axis or Y axis if shift held
|
||||||
|
QWheelEvent *wheelEvent = static_cast<QWheelEvent *>(event);
|
||||||
|
|
||||||
|
int delta = wheelEvent->angleDelta().y(); // delta is typically 120 for one click of wheel
|
||||||
|
|
||||||
|
if (wheelEvent->modifiers() & Qt::ShiftModifier)
|
||||||
|
{
|
||||||
|
double min = ui->y1Min->value();
|
||||||
|
double max = ui->y1Max->value();
|
||||||
|
double adj = (max - min) * 0.20 * delta / 120.0;
|
||||||
|
min += adj;
|
||||||
|
max -= adj;
|
||||||
|
ui->y1Min->setValue(min);
|
||||||
|
ui->y1Max->setValue(max);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QDateTime start = ui->startDateTime->dateTime();
|
||||||
|
QDateTime end = ui->endDateTime->dateTime();
|
||||||
|
qint64 startMS = start.toMSecsSinceEpoch();
|
||||||
|
qint64 endMS = end.toMSecsSinceEpoch();
|
||||||
|
qint64 diff = endMS - startMS;
|
||||||
|
qint64 adj = diff * 0.20 * delta / 120.0;
|
||||||
|
endMS -= adj;
|
||||||
|
startMS += adj;
|
||||||
|
start = QDateTime::fromMSecsSinceEpoch(startMS);
|
||||||
|
end = QDateTime::fromMSecsSinceEpoch(endMS);
|
||||||
|
ui->startDateTime->setDateTime(start);
|
||||||
|
ui->endDateTime->setDateTime(end);
|
||||||
|
}
|
||||||
|
|
||||||
|
wheelEvent->accept();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return FeatureGUI::eventFilter(obj, event);
|
return FeatureGUI::eventFilter(obj, event);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user