From 6ee44604465f8c0c405be58c04346d38e60ce093 Mon Sep 17 00:00:00 2001
From: Tom Rondeau <tom@trondeau.com>
Date: Wed, 9 Mar 2016 15:59:06 -0500
Subject: ctrlport: Some version issues for running gr-perf-monitorx

Newer Matplotlib and Networkx modules have altered a few things on
us. Doing some extra checks and setup to work with, hopefully, all
current versions.
---
 .../python/gnuradio/ctrlport/gr-perf-monitorx      | 22 +++++++++++++++++++---
 1 file changed, 19 insertions(+), 3 deletions(-)

(limited to 'gnuradio-runtime/python')

diff --git a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
index bb53e02cc4..4fd09dcc22 100644
--- a/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
+++ b/gnuradio-runtime/python/gnuradio/ctrlport/gr-perf-monitorx
@@ -28,7 +28,18 @@ try:
     matplotlib.use("QT4Agg")
     import matplotlib.pyplot as plt
     from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
-    from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
+
+    # Manage different matplotlib versions
+    try:
+        from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
+    except ImportError:
+        try:
+            from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
+        except ImportError:
+            print sys.argv[0], "could not load QTAgg backend."
+            sys.exit(1)
+
+
     from matplotlib.figure import Figure
 except ImportError:
     print sys.argv[0], "requires networkx and matplotlib.", \
@@ -42,6 +53,11 @@ import itertools
 from gnuradio import gr, ctrlport
 from gnuradio.ctrlport.GrDataPlotter import *
 
+if float(nx.__version__) >= 1.11:
+    from networkx.drawing.nx_agraph import graphviz_layout
+else:
+    graphviz_layout = nx.graphviz_layout
+
 class MAINWindow(QtGui.QMainWindow):
     def minimumSizeHint(self):
         return QtGui.QSize(800,600)
@@ -778,8 +794,8 @@ class MForm(QtGui.QWidget):
         self.canvas = FigureCanvas(self.f)
         self.layout.addWidget(self.canvas);
 
-        self.pos = nx.graphviz_layout(self.G);
-        #self.pos = nx.pygraphviz_layout(self.G);
+        self.pos = graphviz_layout(self.G);
+        #self.pos = pygraphviz_layout(self.G);
         #self.pos = nx.spectral_layout(self.G);
         #self.pos = nx.circular_layout(self.G);
         #self.pos = nx.shell_layout(self.G);
-- 
cgit v1.2.3