cabana: fix chart tooltip issues (#27778)

old-commit-hash: 6bbcbab3f7
beeps
Dean Lee 2 years ago committed by GitHub
parent 69c2e0a1f4
commit b37c3cf282
  1. 34
      tools/cabana/chartswidget.cc

@ -342,12 +342,26 @@ bool ChartsWidget::eventFilter(QObject *obj, QEvent *event) {
bool ChartsWidget::event(QEvent *event) { bool ChartsWidget::event(QEvent *event) {
bool back_button = false; bool back_button = false;
if (event->type() == QEvent::MouseButtonPress) { switch (event->type()) {
QMouseEvent *ev = static_cast<QMouseEvent *>(event); case QEvent::MouseButtonPress: {
back_button = ev->button() == Qt::BackButton; QMouseEvent *ev = static_cast<QMouseEvent *>(event);
} else if (event->type() == QEvent::NativeGesture) { // MacOS emulates a back swipe on pressing the mouse back button back_button = ev->button() == Qt::BackButton;
QNativeGestureEvent *ev = static_cast<QNativeGestureEvent *>(event); break;
back_button = (ev->value() == 180); }
case QEvent::NativeGesture: {
QNativeGestureEvent *ev = static_cast<QNativeGestureEvent *>(event);
back_button = (ev->value() == 180);
break;
}
case QEvent::WindowActivate:
case QEvent::WindowDeactivate:
case QEvent::FocusIn:
case QEvent::FocusOut:
showValueTip(-1);
break;
default:
break;
} }
if (back_button) { if (back_button) {
@ -541,7 +555,7 @@ void ChartView::updatePlot(double cur, double min, double max) {
updateAxisY(); updateAxisY();
updateSeriesPoints(); updateSeriesPoints();
} }
scene()->invalidate({}, QGraphicsScene::ForegroundLayer); scene()->update();
} }
void ChartView::updateSeriesPoints() { void ChartView::updateSeriesPoints() {
@ -738,7 +752,7 @@ void ChartView::mouseReleaseEvent(QMouseEvent *event) {
} else if (rubber->width() > 10) { } else if (rubber->width() > 10) {
emit zoomIn(min_rounded, max_rounded); emit zoomIn(min_rounded, max_rounded);
} else { } else {
scene()->invalidate({}, QGraphicsScene::ForegroundLayer); scene()->update();
} }
event->accept(); event->accept();
} else if (!can->liveStreaming() && event->button() == Qt::RightButton) { } else if (!can->liveStreaming() && event->button() == Qt::RightButton) {
@ -784,7 +798,7 @@ void ChartView::mouseMoveEvent(QMouseEvent *ev) {
if (rubber_rect != rubber->geometry()) { if (rubber_rect != rubber->geometry()) {
rubber->setGeometry(rubber_rect); rubber->setGeometry(rubber_rect);
} }
scene()->invalidate({}, QGraphicsScene::ForegroundLayer); scene()->update();
} }
} }
@ -1062,7 +1076,7 @@ QList<SeriesSelector::ListItem *> SeriesSelector::seletedItems() {
// ValueTipLabel // ValueTipLabel
ValueTipLabel::ValueTipLabel(QWidget *parent) : QLabel(parent, Qt::Tool | Qt::FramelessWindowHint) { ValueTipLabel::ValueTipLabel(QWidget *parent) : QLabel(parent, Qt::ToolTip | Qt::FramelessWindowHint) {
setForegroundRole(QPalette::ToolTipText); setForegroundRole(QPalette::ToolTipText);
setBackgroundRole(QPalette::ToolTipBase); setBackgroundRole(QPalette::ToolTipBase);
setPalette(QToolTip::palette()); setPalette(QToolTip::palette());

Loading…
Cancel
Save