It will be replaced by a different mechanism.
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
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
shared_ptr<data::SignalBase> channel) :
Trace(channel),
session_(session),
- scale_handle_(make_shared<SignalScaleHandle>(*this)),
- items_({scale_handle_}),
name_widget_(nullptr)
{
assert(base_);
(void)settings;
}
-const ViewItemOwner::item_list& Signal::child_items() const
-{
- return items_;
-}
-
void Signal::paint_back(QPainter &p, ViewItemPaintParams &pp)
{
if (base_->enabled())
#include <cstdint>
-#include "signalscalehandle.hpp"
#include "trace.hpp"
#include "viewitemowner.hpp"
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);
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);
protected:
pv::Session &session_;
- const shared_ptr<SignalScaleHandle> scale_handle_;
- const item_list items_;
-
QComboBox *name_widget_;
};
+++ /dev/null
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2015 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-#include <algorithm>
-
-#include <QRadialGradient>
-
-#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
+++ /dev/null
-/*
- * This file is part of the PulseView project.
- *
- * Copyright (C) 2015 Joel Holdsworth <joel@airwebreathe.org.uk>
- *
- * 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 <http://www.gnu.org/licenses/>.
- */
-
-#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
namespace views {
namespace trace {
+const ViewItemOwner::item_list& ViewItemOwner::child_items() const
+{
+ return items_;
+}
+
ViewItemOwner::iterator ViewItemOwner::begin()
{
return iterator(this, items_.begin());
/**
* 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
${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
${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