summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Michael Andreen <harv@ruin.nu>2013-07-30 23:36:20 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-08-05 06:55:18 +0200
commit069f588d9dfc6ae6b93d19364846e8a6ed4af6a2 (patch)
tree671a2d252229fedc00524bd5f6e2a2956447a7ee
parent396b2d10317e49de029def1f4061e03e383c9040 (diff)
downloadsubsurface-069f588d9dfc6ae6b93d19364846e8a6ed4af6a2.tar.gz
Support more than one event of the same type in Qt tooltip.
Since the tooltip text was used as key in the map, two events of the same type, close to eachother, would cause one of them to not be removed. Since ToolTip::removeToolTip() isn't used, we don't need a QMap and can use a QList instead, so all tooltips are properly cleared. Signed-off-by: Michael Andreen <harv@ruin.nu> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qt-ui/profilegraphics.cpp24
-rw-r--r--qt-ui/profilegraphics.h3
2 files changed, 2 insertions, 25 deletions
diff --git a/qt-ui/profilegraphics.cpp b/qt-ui/profilegraphics.cpp
index e2604c684..e85bfc5e1 100644
--- a/qt-ui/profilegraphics.cpp
+++ b/qt-ui/profilegraphics.cpp
@@ -1190,32 +1190,10 @@ void ToolTipItem::addToolTip(const QString& toolTip, const QIcon& icon)
textItem->setPos(SPACING + ICON_SMALL + SPACING, yValue);
textItem->setBrush(QBrush(Qt::white));
textItem->setFlag(ItemIgnoresTransformations);
- toolTips[toolTip] = qMakePair(iconItem, textItem);
+ toolTips.push_back(qMakePair(iconItem, textItem));
expand();
}
-void ToolTipItem::removeToolTip(const QString& toolTip)
-{
- ToolTip toBeRemoved = toolTips[toolTip];
- delete toBeRemoved.first;
- delete toBeRemoved.second;
- toolTips.remove(toolTip);
-
- int toolTipIndex = 0;
-
- // We removed a toolTip, let's move the others to the correct location
- Q_FOREACH(ToolTip t, toolTips) {
- double yValue = title->boundingRect().height() + SPACING + toolTipIndex * ICON_SMALL + SPACING;
-
- // Icons can be null.
- if (t.first)
- t.first->setPos(SPACING, yValue);
-
- t.second->setPos(SPACING + ICON_SMALL + SPACING, yValue);
- toolTipIndex++;
- }
-}
-
void ToolTipItem::refresh(struct graphics_context *gc, QPointF pos)
{
clear();
diff --git a/qt-ui/profilegraphics.h b/qt-ui/profilegraphics.h
index f030ff1a8..0bcbf7529 100644
--- a/qt-ui/profilegraphics.h
+++ b/qt-ui/profilegraphics.h
@@ -35,7 +35,6 @@ public:
void expand();
void clear();
void addToolTip(const QString& toolTip, const QIcon& icon = QIcon());
- void removeToolTip(const QString& toolTip);
void refresh(struct graphics_context* gc, QPointF pos);
bool isExpanded();
void persistPos();
@@ -48,7 +47,7 @@ public slots:
private:
typedef QPair<QGraphicsPixmapItem*, QGraphicsSimpleTextItem*> ToolTip;
- QMap<QString, ToolTip > toolTips;
+ QList<ToolTip> toolTips;
QGraphicsPathItem *background;
QGraphicsLineItem *separator;
QGraphicsSimpleTextItem *title;