Mercurial > hg > easyhg
comparison changesetitem.cpp @ 119:005a54380502
* Make scene remember which item has its details showing, and remove the previous one when a new one is clicked
author | Chris Cannam |
---|---|
date | Sun, 28 Nov 2010 21:52:00 +0000 |
parents | 9734fb0d6fff |
children | 1f27f71a7034 |
comparison
equal
deleted
inserted
replaced
118:9734fb0d6fff | 119:005a54380502 |
---|---|
42 if (m_wide) w = 180; | 42 if (m_wide) w = 180; |
43 return QRectF(-((w-50)/2 - 1), -30, w - 3, 79); | 43 return QRectF(-((w-50)/2 - 1), -30, w - 3, 79); |
44 } | 44 } |
45 | 45 |
46 void | 46 void |
47 ChangesetItem::mousePressEvent(QGraphicsSceneMouseEvent *e) | 47 ChangesetItem::showDetail() |
48 { | 48 { |
49 DEBUG << "ChangesetItem::mousePressEvent" << endl; | 49 if (m_detail) return; |
50 //!!! how best to handle this? | |
51 if (m_detail) { | |
52 delete m_detail; | |
53 m_detail = 0; | |
54 return; | |
55 } | |
56 m_detail = new ChangesetDetailItem(m_changeset); | 50 m_detail = new ChangesetDetailItem(m_changeset); |
57 m_detail->setZValue(zValue() + 1); | 51 m_detail->setZValue(zValue() + 1); |
58 scene()->addItem(m_detail); | 52 scene()->addItem(m_detail); |
59 int w = 100; | 53 int w = 100; |
60 if (m_wide) w = 180; | 54 if (m_wide) w = 180; |
61 m_detail->moveBy(x() - (m_detail->boundingRect().width() - 50) / 2, | 55 m_detail->moveBy(x() - (m_detail->boundingRect().width() - 50) / 2, |
62 y() + 60); | 56 y() + 60); |
57 emit detailShown(); | |
58 } | |
59 | |
60 void | |
61 ChangesetItem::hideDetail() | |
62 { | |
63 delete m_detail; | |
64 m_detail = 0; | |
65 emit detailHidden(); | |
66 } | |
67 | |
68 void | |
69 ChangesetItem::mousePressEvent(QGraphicsSceneMouseEvent *e) | |
70 { | |
71 DEBUG << "ChangesetItem::mousePressEvent" << endl; | |
72 if (m_detail) { | |
73 hideDetail(); | |
74 } else { | |
75 showDetail(); | |
76 } | |
63 } | 77 } |
64 | 78 |
65 void | 79 void |
66 ChangesetItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *option, | 80 ChangesetItem::paint(QPainter *paint, const QStyleOptionGraphicsItem *option, |
67 QWidget *w) | 81 QWidget *w) |