From ab64b2a5dddf61d2039ab9a36aff84a90a5a713b Mon Sep 17 00:00:00 2001
From: Tom Rondeau <trondeau@vt.edu>
Date: Wed, 27 Feb 2013 18:23:57 -0500
Subject: ctrlport: adding minor protection for dropped data onto plot so we
 don't just try and plot random stuff.

---
 .../src/python/gnuradio/ctrlport/GrDataPlotter.py  | 22 ++++++++++++++++------
 .../python/gnuradio/ctrlport/gr-ctrlport-monitor   | 13 ++++++++++++-
 2 files changed, 28 insertions(+), 7 deletions(-)

(limited to 'gnuradio-core/src/python')

diff --git a/gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py b/gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py
index 1bcf6bf807..f797271970 100644
--- a/gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py
+++ b/gnuradio-core/src/python/gnuradio/ctrlport/GrDataPlotter.py
@@ -107,15 +107,25 @@ class GrDataPlotParent(gr.top_block, QtGui.QWidget):
         e.acceptProposedAction()
 
     def dropEvent(self, e):
-        self.knobnames.append(str(e.mimeData().text()))
+        if(e.mimeData().hasFormat("text/plain")):
+            data = str(e.mimeData().text())
 
-        # create a new qwidget plot with the new data stream.
-        self._setup(len(self.knobnames))
+            #"PlotData:{0}:{1}".format(tag, iscomplex)
+            datalst = data.split(":::")
+            tag = datalst[0]
+            name = datalst[1]
+            cpx = datalst[2] != "0"
 
-        # emit that this plot has been updated with a new qwidget.
-        self.plotupdated.emit(self)
+            if(tag == "PlotData" and cpx == self._iscomplex):
+                self.knobnames.append(name)
 
-        e.acceptProposedAction()
+                # create a new qwidget plot with the new data stream.
+                self._setup(len(self.knobnames))
+
+                # emit that this plot has been updated with a new qwidget.
+                self.plotupdated.emit(self)
+
+                e.acceptProposedAction()
 
     def data_to_complex(self, data):
         if(self._iscomplex):
diff --git a/gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor b/gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor
index d5d349a38a..e71cd92ab7 100755
--- a/gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor
+++ b/gnuradio-core/src/python/gnuradio/ctrlport/gr-ctrlport-monitor
@@ -226,7 +226,18 @@ class MAINWindow(QtGui.QMainWindow):
         drag = QtGui.QDrag(self)
         mime_data = QtCore.QMimeData()
 
-        mime_data.setText(e.text(0))
+        tag = str(e.text(0))
+        tree = e.treeWidget().parent()
+        knobprop = self.knobprops[tree.uid][tag]
+        disp = knobprop.display
+        iscomplex = (disp & gr.DISPOPTCPLX) or (disp & gr.DISPXY)
+        
+        if(disp != gr.DISPNULL):
+            data = "PlotData:::{0}:::{1}".format(tag, iscomplex)
+        else:
+            data = "OtherData:::{0}:::{1}".format(tag, iscomplex)
+
+        mime_data.setText(data)
         drag.setMimeData(mime_data)
 
         drop = drag.start()
-- 
cgit v1.2.3