[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r3559: The Marble folks say calling setPen() can be expensive. So, (vidalia/trunk/src/vidalia/network)
Author: edmanm
Date: 2009-02-19 16:15:24 -0500 (Thu, 19 Feb 2009)
New Revision: 3559
Modified:
vidalia/trunk/src/vidalia/network/tormapwidget.cpp
Log:
The Marble folks say calling setPen() can be expensive. So, try to
minimize the number of times we need to call it in the foreach() loop.
Modified: vidalia/trunk/src/vidalia/network/tormapwidget.cpp
===================================================================
--- vidalia/trunk/src/vidalia/network/tormapwidget.cpp 2009-02-19 20:51:04 UTC (rev 3558)
+++ vidalia/trunk/src/vidalia/network/tormapwidget.cpp 2009-02-19 21:15:24 UTC (rev 3559)
@@ -271,10 +271,19 @@
void
TorMapWidget::customPaint(GeoPainter *painter)
{
+ bool selected = false;
+
painter->autoMapQuality();
+ painter->setPen(CIRCUIT_NORMAL_PEN);
foreach (CircuitGeoPath *path, _circuits.values()) {
- painter->setPen(path->second ? CIRCUIT_SELECTED_PEN : CIRCUIT_NORMAL_PEN);
+ if (! path->second && selected) {
+ painter->setPen(CIRCUIT_NORMAL_PEN);
+ selected = false;
+ } else if (path->second && ! selected) {
+ painter->setPen(CIRCUIT_SELECTED_PEN);
+ selected = true;
+ }
painter->drawPolyline(path->first);
}
}