From 4ee87411577bca983d26f84b1d2d03560eae3ac1 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Fri, 13 Jan 2023 18:50:06 +0000 Subject: [PATCH] Few fixes to passband dragging --- wfmain.cpp | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/wfmain.cpp b/wfmain.cpp index 2fcef68..47013ee 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -4592,9 +4592,10 @@ void wfmain::handlePlotClick(QMouseEvent* me) QCPAbstractItem* item = plot->itemAt(me->pos(), true); QCPItemText* textItem = dynamic_cast (item); QCPItemRect* rectItem = dynamic_cast (item); - if (rectItem != nullptr && ((me->pos().x()) == (int)passbandIndicator->right->pixelPosition().x() || - (me->pos().x()) == (int)passbandIndicator->left->pixelPosition().x())) - { + int leftPix = (int)passbandIndicator->left->pixelPosition().x(); + int rightPix = (int)passbandIndicator->right->pixelPosition().x(); + if (rectItem != nullptr && (me->pos().x() > leftPix - 5 && me->pos().x() <= leftPix) || + (me->pos().x() >= rightPix && me->pos().x() < rightPix + 5)) { resizingPassband = true; } @@ -4663,32 +4664,30 @@ void wfmain::handlePlotMouseMove(QMouseEvent *me) QCPAbstractItem* item = plot->itemAt(me->pos(), true); QCPItemText* textItem = dynamic_cast (item); QCPItemRect* rectItem = dynamic_cast (item); - if (rectItem != nullptr && ((me->pos().x()) == (int)passbandIndicator->right->pixelPosition().x() || - (me->pos().x()) == (int)passbandIndicator->left->pixelPosition().x())) { + int leftPix = (int)passbandIndicator->left->pixelPosition().x(); + int rightPix = (int)passbandIndicator->right->pixelPosition().x(); + if (rectItem != nullptr && (me->pos().x() > leftPix - 5 && me->pos().x() <= leftPix) || + (me->pos().x() >= rightPix && me->pos().x() < rightPix + 5)) { setCursor(Qt::SizeHorCursor); } - else if (!resizingPassband) { - setCursor(Qt::ArrowCursor); - } else if (resizingPassband) { // We are currently resizing the passband. double left = passbandIndicator->topLeft->coords().x(); double right = passbandIndicator->bottomRight->coords().x(); double delta = plot->xAxis->pixelToCoord(me->pos().x()); - //passBand = delta - left; - if (currentModeInfo.mk == modeLSB || currentModeInfo.mk == modePSK_R) { + if (currentModeInfo.mk == modeLSB || currentModeInfo.mk == modePSK_R || delta < freq.MHzDouble) { passBand = right - delta; } - else if (currentModeInfo.mk == modeUSB || currentModeInfo.mk == modePSK) { - passBand = delta - left; - } - else { + else if (currentModeInfo.mk == modeUSB || currentModeInfo.mk == modePSK || delta >= freq.MHzDouble) { passBand = delta - left; } issueCmdUniquePriority(cmdSetPassband, (quint16)(passBand * 1000000)); } + else { + setCursor(Qt::ArrowCursor); + } if(me->buttons() == Qt::LeftButton && textItem==nullptr && prefs.clickDragTuningEnable) {