2 * This file is part of the PulseView project.
4 * Copyright (C) 2013 Joel Holdsworth <joel@airwebreathe.org.uk>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, see <http://www.gnu.org/licenses/>.
20 #include "viewitem.hpp"
24 #include <QApplication>
32 const QSizeF
ViewItem::LabelPadding(4, 0);
33 const int ViewItem::HighlightRadius
= 3;
35 ViewItem::ViewItem() :
36 context_parent_(nullptr),
37 drag_point_(INT_MIN
, INT_MIN
),
42 bool ViewItem::selected() const
47 void ViewItem::select(bool select
)
52 bool ViewItem::is_draggable() const
57 bool ViewItem::dragging() const
59 return drag_point_
.x() != INT_MIN
&& drag_point_
.y() != INT_MIN
;
65 drag_point_
= point(QRect());
68 void ViewItem::drag_release()
70 drag_point_
= QPoint(INT_MIN
, INT_MIN
);
73 QRectF
ViewItem::label_rect(const QRectF
&rect
) const
79 QRectF
ViewItem::hit_box_rect(const ViewItemPaintParams
&pp
) const
85 QMenu
* ViewItem::create_context_menu(QWidget
*parent
)
87 context_parent_
= parent
;
88 return new QMenu(parent
);
91 widgets::Popup
* ViewItem::create_popup(QWidget
*parent
)
97 void ViewItem::delete_pressed()
101 QPen
ViewItem::highlight_pen()
103 return QPen(QApplication::palette().brush(
104 QPalette::Highlight
), HighlightRadius
* 2,
105 Qt::SolidLine
, Qt::RoundCap
, Qt::RoundJoin
);
108 void ViewItem::paint_label(QPainter
&p
, const QRect
&rect
, bool hover
)
115 void ViewItem::paint_back(QPainter
&p
, const ViewItemPaintParams
&pp
)
121 void ViewItem::paint_mid(QPainter
&p
, const ViewItemPaintParams
&pp
)
127 void ViewItem::paint_fore(QPainter
&p
, const ViewItemPaintParams
&pp
)
133 QColor
ViewItem::select_text_colour(QColor background
)
135 return (background
.lightness() > 110) ? Qt::black
: Qt::white
;
138 } // namespace TraceView