From: Soeren Apel Date: Thu, 20 Jul 2017 06:45:06 +0000 (+0200) Subject: Remove signal scale handle X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=commitdiff_plain;h=2d458a761b9fb184cd1c903485293f86fd552637 Remove signal scale handle It will be replaced by a different mechanism. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 66ef33b1..d210f92a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,6 @@ set(pulseview_SOURCES pv/views/trace/rowitem.cpp pv/views/trace/ruler.cpp pv/views/trace/signal.cpp - pv/views/trace/signalscalehandle.cpp pv/views/trace/timeitem.cpp pv/views/trace/timemarker.cpp pv/views/trace/trace.cpp @@ -297,7 +296,6 @@ set(pulseview_HEADERS pv/views/trace/rowitem.hpp pv/views/trace/ruler.hpp pv/views/trace/signal.hpp - pv/views/trace/signalscalehandle.hpp pv/views/trace/timeitem.hpp pv/views/trace/timemarker.hpp pv/views/trace/trace.hpp diff --git a/pv/views/trace/signal.cpp b/pv/views/trace/signal.cpp index a55598cf..3d6ee151 100644 --- a/pv/views/trace/signal.cpp +++ b/pv/views/trace/signal.cpp @@ -63,8 +63,6 @@ Signal::Signal(pv::Session &session, shared_ptr channel) : Trace(channel), session_(session), - scale_handle_(make_shared(*this)), - items_({scale_handle_}), name_widget_(nullptr) { assert(base_); @@ -101,11 +99,6 @@ void Signal::restore_settings(QSettings &settings) (void)settings; } -const ViewItemOwner::item_list& Signal::child_items() const -{ - return items_; -} - void Signal::paint_back(QPainter &p, ViewItemPaintParams &pp) { if (base_->enabled()) diff --git a/pv/views/trace/signal.hpp b/pv/views/trace/signal.hpp index 83472818..d763609d 100644 --- a/pv/views/trace/signal.hpp +++ b/pv/views/trace/signal.hpp @@ -27,7 +27,6 @@ #include -#include "signalscalehandle.hpp" #include "trace.hpp" #include "viewitemowner.hpp" @@ -71,11 +70,6 @@ public: virtual void restore_settings(QSettings &settings); - /** - * Returns a list of row items owned by this object. - */ - const item_list& child_items() const; - void paint_back(QPainter &p, ViewItemPaintParams &pp); virtual void populate_popup_form(QWidget *parent, QFormLayout *form); @@ -84,22 +78,6 @@ public: void delete_pressed(); - /** - * Returns the offset to show the drag handle. - */ - virtual int scale_handle_offset() const = 0; - - /** - * Handles the scale handle being dragged to an offset. - * @param offset the offset the scale handle was dragged to. - */ - virtual void scale_handle_dragged(int offset) = 0; - - /** - * Handles the scale handle being being released. - */ - virtual void scale_handle_released() {}; - protected Q_SLOTS: virtual void on_name_changed(const QString &text); @@ -110,9 +88,6 @@ protected Q_SLOTS: protected: pv::Session &session_; - const shared_ptr scale_handle_; - const item_list items_; - QComboBox *name_widget_; }; diff --git a/pv/views/trace/signalscalehandle.cpp b/pv/views/trace/signalscalehandle.cpp deleted file mode 100644 index b7bd85fb..00000000 --- a/pv/views/trace/signalscalehandle.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* - * This file is part of the PulseView project. - * - * Copyright (C) 2015 Joel Holdsworth - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#include - -#include - -#include "signal.hpp" -#include "signalscalehandle.hpp" -#include "tracetreeitemowner.hpp" - -using std::max; -using std::min; - -namespace pv { -namespace views { -namespace trace { - -SignalScaleHandle::SignalScaleHandle(Signal &owner) : - owner_(owner) -{ -} - -bool SignalScaleHandle::enabled() const -{ - return selected() || owner_.selected(); -} - -void SignalScaleHandle::select(bool select) -{ - ViewItem::select(select); - owner_.owner()->row_item_appearance_changed(true, true); -} - -void SignalScaleHandle::drag_release() -{ - RowItem::drag_release(); - owner_.scale_handle_released(); - owner_.owner()->row_item_appearance_changed(true, true); -} - -void SignalScaleHandle::drag_by(const QPoint &delta) -{ - owner_.scale_handle_dragged( - drag_point_.y() + delta.y() - owner_.get_visual_y()); - owner_.owner()->row_item_appearance_changed(true, true); -} - -QPoint SignalScaleHandle::drag_point(const QRect &rect) const -{ - return owner_.drag_point(rect) + QPoint(0, owner_.scale_handle_offset()); -} - -QRectF SignalScaleHandle::hit_box_rect(const ViewItemPaintParams &pp) const -{ - const int text_height = ViewItemPaintParams::text_height(); - const double x = -pp.pixels_offset() - text_height / 2; - const double min_x = pp.left() + text_height; - const double max_x = pp.right() - text_height * 2; - return QRectF(min(max(x, min_x), max_x), - owner_.get_visual_y() + owner_.scale_handle_offset() - - text_height / 2, - text_height, text_height); -} - -void SignalScaleHandle::paint_fore(QPainter &p, ViewItemPaintParams &pp) -{ - if (!enabled()) - return; - - const QRectF r(hit_box_rect(pp)); - const QPointF c = (r.topLeft() + 2 * r.center()) / 3; - QRadialGradient gradient(c, r.width(), c); - - if (selected()) { - gradient.setColorAt(0.0, QColor(255, 255, 255)); - gradient.setColorAt(0.75, QColor(192, 192, 192)); - gradient.setColorAt(1.0, QColor(128, 128, 128)); - } else { - gradient.setColorAt(0.0, QColor(192, 192, 192)); - gradient.setColorAt(0.75, QColor(128, 128, 128)); - gradient.setColorAt(1.0, QColor(128, 128, 128)); - } - - p.setBrush(QBrush(gradient)); - p.setPen(QColor(128, 128, 128)); - p.drawEllipse(r); -} - -} // namespace trace -} // namespace views -} // namespace pv diff --git a/pv/views/trace/signalscalehandle.hpp b/pv/views/trace/signalscalehandle.hpp deleted file mode 100644 index 4b256a04..00000000 --- a/pv/views/trace/signalscalehandle.hpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * This file is part of the PulseView project. - * - * Copyright (C) 2015 Joel Holdsworth - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#ifndef PULSEVIEW_PV_VIEWS_TRACEVIEW_SIGNALSCALEHANDLE_HPP -#define PULSEVIEW_PV_VIEWS_TRACEVIEW_SIGNALSCALEHANDLE_HPP - -#include "rowitem.hpp" - -namespace pv { -namespace views { -namespace trace { - -class Signal; - -/** - * A row item owned by a @c Signal that implements the v-scale adjustment grab - * handle. - */ -class SignalScaleHandle : public RowItem -{ - Q_OBJECT -public: - /** - * Constructor - */ - explicit SignalScaleHandle(Signal &owner); - -public: - /** - * Returns true if the parent item is enabled. - */ - bool enabled() const; - - /** - * Selects or deselects the signal. - */ - void select(bool select = true); - - /** - * Sets this item into the un-dragged state. - */ - void drag_release(); - - /** - * Drags the item to a delta relative to the drag point. - * @param delta the offset from the drag point. - */ - void drag_by(const QPoint &delta); - - /** - * Get the drag point. - * @param rect the rectangle of the widget area. - */ - QPoint drag_point(const QRect &rect) const; - - /** - * Computes the outline rectangle of the viewport hit-box. - * @param rect the rectangle of the viewport area. - * @return Returns the rectangle of the hit-box. - */ - QRectF hit_box_rect(const ViewItemPaintParams &pp) const; - - /** - * Paints the foreground layer of the item with a QPainter - * @param p the QPainter to paint into. - * @param pp the painting parameters object to paint with. - */ - void paint_fore(QPainter &p, ViewItemPaintParams &pp); - -private: - Signal &owner_; -}; - -} // namespace trace -} // namespace views -} // namespace pv - -#endif // PULSEVIEW_PV_VIEWS_TRACEVIEW_SIGNALSCALEHANDLE_HPP diff --git a/pv/views/trace/viewitemowner.cpp b/pv/views/trace/viewitemowner.cpp index 855cb1af..0e880df6 100644 --- a/pv/views/trace/viewitemowner.cpp +++ b/pv/views/trace/viewitemowner.cpp @@ -27,6 +27,11 @@ namespace pv { namespace views { namespace trace { +const ViewItemOwner::item_list& ViewItemOwner::child_items() const +{ + return items_; +} + ViewItemOwner::iterator ViewItemOwner::begin() { return iterator(this, items_.begin()); diff --git a/pv/views/trace/viewitemowner.hpp b/pv/views/trace/viewitemowner.hpp index b8dbe202..29f74b5a 100644 --- a/pv/views/trace/viewitemowner.hpp +++ b/pv/views/trace/viewitemowner.hpp @@ -50,7 +50,7 @@ public: /** * Returns a list of row items owned by this object. */ - virtual const item_list& child_items() const = 0; + virtual const item_list& child_items() const; /** * Returns a depth-first iterator at the beginning of the child ViewItem diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e43d30dc..b787cc92 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -61,7 +61,6 @@ set(pulseview_TEST_SOURCES ${PROJECT_SOURCE_DIR}/pv/views/trace/rowitem.cpp ${PROJECT_SOURCE_DIR}/pv/views/trace/ruler.cpp ${PROJECT_SOURCE_DIR}/pv/views/trace/signal.cpp - ${PROJECT_SOURCE_DIR}/pv/views/trace/signalscalehandle.cpp ${PROJECT_SOURCE_DIR}/pv/views/trace/timeitem.cpp ${PROJECT_SOURCE_DIR}/pv/views/trace/timemarker.cpp ${PROJECT_SOURCE_DIR}/pv/views/trace/trace.cpp @@ -129,7 +128,6 @@ set(pulseview_TEST_HEADERS ${PROJECT_SOURCE_DIR}/pv/views/trace/rowitem.hpp ${PROJECT_SOURCE_DIR}/pv/views/trace/ruler.hpp ${PROJECT_SOURCE_DIR}/pv/views/trace/signal.hpp - ${PROJECT_SOURCE_DIR}/pv/views/trace/signalscalehandle.hpp ${PROJECT_SOURCE_DIR}/pv/views/trace/timeitem.hpp ${PROJECT_SOURCE_DIR}/pv/views/trace/timemarker.hpp ${PROJECT_SOURCE_DIR}/pv/views/trace/trace.hpp