From ebe900cbb7809021f578838fc27c8e596121aab1 Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Mon, 8 Jan 2024 16:33:53 +0800 Subject: [PATCH] fix: draging the dso channel, but the time base be changed --- DSView/pv/view/header.cpp | 6 ++++++ DSView/pv/view/header.h | 9 +++++---- DSView/pv/view/view.cpp | 5 +++++ DSView/pv/view/view.h | 2 +- DSView/pv/view/viewport.cpp | 4 ++++ 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/DSView/pv/view/header.cpp b/DSView/pv/view/header.cpp index 7880afc6..d0fd9316 100644 --- a/DSView/pv/view/header.cpp +++ b/DSView/pv/view/header.cpp @@ -47,6 +47,7 @@ #include "../appcontrol.h" #include "../config/appconfig.h" #include "../ui/fn.h" +#include "../log.h" using namespace std; @@ -61,6 +62,7 @@ Header::Header(View &parent) : _colorFlag = false; _nameFlag = false; _context_trace = NULL; + _mouse_is_down = false; nameEdit = new QLineEdit(this); nameEdit->setFixedWidth(100); @@ -173,6 +175,8 @@ void Header::mousePressEvent(QMouseEvent *event) { assert(event); + _mouse_is_down = true; + std::vector traces; _view.get_traces(ALL_VIEW, traces); int action; @@ -235,6 +239,8 @@ void Header::mouseReleaseEvent(QMouseEvent *event) { assert(event); + _mouse_is_down = false; + // judge for color / name / trigger / move int action; const auto mTrace = get_mTrace(action, event->pos()); diff --git a/DSView/pv/view/header.h b/DSView/pv/view/header.h index d9a9ffe6..8779cba8 100644 --- a/DSView/pv/view/header.h +++ b/DSView/pv/view/header.h @@ -69,6 +69,10 @@ public: int get_nameEditWidth(); void header_resize(); + inline bool mouse_is_down(){ + return _mouse_is_down; + } + private slots: void on_action_set_name_triggered(); @@ -85,15 +89,12 @@ private: bool _moveFlag; bool _colorFlag; bool _nameFlag; - QPoint _mouse_point; QPoint _mouse_down_point; - QLineEdit *nameEdit; - std::list > _drag_traces; - Trace *_context_trace; + bool _mouse_is_down; }; } // namespace view diff --git a/DSView/pv/view/view.cpp b/DSView/pv/view/view.cpp index 447fc35c..5b274317 100644 --- a/DSView/pv/view/view.cpp +++ b/DSView/pv/view/view.cpp @@ -1403,5 +1403,10 @@ std::list& View::get_cursorList() } } +bool View::header_is_draging() +{ + return _header->mouse_is_down(); +} + } // namespace view } // namespace pv diff --git a/DSView/pv/view/view.h b/DSView/pv/view/view.h index 10c0e4f7..8c281a8e 100644 --- a/DSView/pv/view/view.h +++ b/DSView/pv/view/view.h @@ -324,8 +324,8 @@ public: //IFontForm void update_font() override; - void check_measure(); + bool header_is_draging(); signals: void hover_point_changed(); diff --git a/DSView/pv/view/viewport.cpp b/DSView/pv/view/viewport.cpp index 7ea974b8..d121a30f 100644 --- a/DSView/pv/view/viewport.cpp +++ b/DSView/pv/view/viewport.cpp @@ -1230,6 +1230,10 @@ void Viewport::wheelEvent(QWheelEvent *event) { assert(event); + if (_view.header_is_draging()){ + return; + } + int x = 0; //mouse x pos int delta = 0; bool isVertical = true;