Fixing MacOS only GUI adjustment relying on QWheelEvent->delta() which was removed in Qt6. Some simplification was possible but no test due to lack of OS.

Discovered due to new CI.
This commit is contained in:
Andre Rummler
2026-08-11 23:58:30 +02:00
parent a4d23fe312
commit d2a921ea80
+16 -16
View File
@@ -35,28 +35,28 @@ public:
: QTabWidget(parent) : QTabWidget(parent)
{} {}
double temp_index = 0;
void wheelEvent(QWheelEvent *event) override void wheelEvent(QWheelEvent *event) override
{ {
int index = currentIndex(); // Only intercept if Ctrl is held down
double delta = 0; if (event->modifiers() & Qt::ControlModifier) {
double scale_factor = 0.005; // Decrease or increase speed of mouse wheel (0.04 = decrease) int index = currentIndex();
if (event->modifiers() & Qt::ControlModifier) { if (index != -1) {
if (index != -1) { // angleDelta().y() is usually 120 per click.
delta = event->delta() * scale_factor; // Read and scale the scroll value // Dividing by 120 gives you exactly +1 (scroll up) or -1 (scroll down)
if (delta > 0 && (temp_index > -1)) temp_index = temp_index - abs(delta); int steps = event->angleDelta().y() / 120;
if (delta < 0 && (temp_index < count())) temp_index = temp_index + abs(delta);
index = int (temp_index); if (steps != 0) {
qDebug() << "index" << index << "temp_index" << temp_index << " " << event->delta() << delta; int newIndex = index - steps;
if (index >= 0 && index < count()) if (newIndex >= 0 && newIndex < count())
setCurrentIndex(index); setCurrentIndex(newIndex);
// qDebug() << currentIndex();
} }
} }
event->accept(); // Mark event handled so parent widgets don't process it
} else {
// Allow the default QTabWidget wheel behavior to process if Ctrl isn't held
QTabWidget::wheelEvent(event);
}
} }
}; };
#endif #endif