From 95bddca0147ffea2428fb4de6d88e6a8c6c5ddb9 Mon Sep 17 00:00:00 2001
From: Mikhail Terekhov <terekhov@emc.com>
Date: Fri, 31 Jan 2014 23:00:18 -0500
Subject: [PATCH] In ArrowItem allow individual parameter change through
 setStyle call.

---
 examples/Arrow.py                     | 3 ++-
 pyqtgraph/graphicsItems/ArrowItem.py  | 9 ++++++---
 pyqtgraph/graphicsItems/CurvePoint.py | 2 +-
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/examples/Arrow.py b/examples/Arrow.py
index 2cbff113..d5ea2a74 100644
--- a/examples/Arrow.py
+++ b/examples/Arrow.py
@@ -2,7 +2,7 @@
 """
 Display an animated arrowhead following a curve.
 This example uses the CurveArrow class, which is a combination
-of ArrowItem and CurvePoint. 
+of ArrowItem and CurvePoint.
 
 To place a static arrow anywhere in a scene, use ArrowItem.
 To attach other types of item to a curve, use CurvePoint.
@@ -45,6 +45,7 @@ p.setRange(QtCore.QRectF(-20, -10, 60, 20))
 ## Animated arrow following curve
 c = p2.plot(x=np.sin(np.linspace(0, 2*np.pi, 1000)), y=np.cos(np.linspace(0, 6*np.pi, 1000)))
 a = pg.CurveArrow(c)
+a.setStyle(headLen=40)
 p2.addItem(a)
 anim = a.makeAnimation(loop=-1)
 anim.start()
diff --git a/pyqtgraph/graphicsItems/ArrowItem.py b/pyqtgraph/graphicsItems/ArrowItem.py
index dcede02a..258f8b02 100644
--- a/pyqtgraph/graphicsItems/ArrowItem.py
+++ b/pyqtgraph/graphicsItems/ArrowItem.py
@@ -70,13 +70,16 @@ class ArrowItem(QtGui.QGraphicsPathItem):
         brush             The brush used to fill the arrow.
         ================= =================================================
         """
-        self.opts = opts
+        try:
+            self.opts.update(opts)
+        except AttributeError:
+            self.opts = opts
         
         opt = dict([(k,self.opts[k]) for k in ['headLen', 'tipAngle', 'baseAngle', 'tailLen', 'tailWidth']])
         self.path = fn.makeArrowPath(**opt)
         self.setPath(self.path)
         
-        if opts['pxMode']:
+        if self.opts['pxMode']:
             self.setFlags(self.flags() | self.ItemIgnoresTransformations)
         else:
             self.setFlags(self.flags() & ~self.ItemIgnoresTransformations)
@@ -121,4 +124,4 @@ class ArrowItem(QtGui.QGraphicsPathItem):
         return pad
         
         
-    
\ No newline at end of file
+    
diff --git a/pyqtgraph/graphicsItems/CurvePoint.py b/pyqtgraph/graphicsItems/CurvePoint.py
index 668830f7..d6fd2a08 100644
--- a/pyqtgraph/graphicsItems/CurvePoint.py
+++ b/pyqtgraph/graphicsItems/CurvePoint.py
@@ -112,6 +112,6 @@ class CurveArrow(CurvePoint):
         self.arrow = ArrowItem.ArrowItem(**opts)
         self.arrow.setParentItem(self)
         
-    def setStyle(**opts):
+    def setStyle(self, **opts):
         return self.arrow.setStyle(**opts)
         
-- 
GitLab