]> sigrok.org Git - pulseview.git/blobdiff - pv/view/viewitem.cpp
Add a mechanism to make ViewItem classes immovable.
[pulseview.git] / pv / view / viewitem.cpp
index 55243860c0f4b342c86238fb9bae3f07968acf29..e9602f8790ddcec61767509cd694524cbd3d8cd6 100644 (file)
@@ -49,6 +49,11 @@ void ViewItem::select(bool select)
        selected_ = select;
 }
 
+bool ViewItem::is_draggable() const
+{
+       return true;
+}
+
 bool ViewItem::dragging() const
 {
        return drag_point_.x() != INT_MIN && drag_point_.y() != INT_MIN;
@@ -56,7 +61,8 @@ bool ViewItem::dragging() const
 
 void ViewItem::drag()
 {
-       drag_point_ = point(QRect());
+       if (is_draggable())
+               drag_point_ = point(QRect());
 }
 
 void ViewItem::drag_release()
@@ -64,18 +70,30 @@ void ViewItem::drag_release()
        drag_point_ = QPoint(INT_MIN, INT_MIN);
 }
 
-QRectF ViewItem::hit_box_rect(const QRectF &rect) const
+QRectF ViewItem::label_rect(const QRectF &rect) const
 {
        (void)rect;
        return QRectF();
 }
 
+QRectF ViewItem::hit_box_rect(const ViewItemPaintParams &pp) const
+{
+       (void)pp;
+       return QRectF();
+}
+
 QMenu* ViewItem::create_context_menu(QWidget *parent)
 {
        context_parent_ = parent;
        return new QMenu(parent);
 }
 
+widgets::Popup* ViewItem::create_popup(QWidget *parent)
+{
+       (void)parent;
+       return nullptr;
+}
+
 void ViewItem::delete_pressed()
 {
 }
@@ -87,6 +105,13 @@ QPen ViewItem::highlight_pen()
                Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
 }
 
+void ViewItem::paint_label(QPainter &p, const QRect &rect, bool hover)
+{
+       (void)p;
+       (void)rect;
+       (void)hover;
+}
+
 void ViewItem::paint_back(QPainter &p, const ViewItemPaintParams &pp)
 {
        (void)p;
@@ -107,7 +132,7 @@ void ViewItem::paint_fore(QPainter &p, const ViewItemPaintParams &pp)
 
 QColor ViewItem::select_text_colour(QColor background)
 {
-       return (background.lightness() > 64) ? Qt::black : Qt::white;
+       return (background.lightness() > 110) ? Qt::black : Qt::white;
 }
 
 } // namespace view