Index: src/sas/qtgui/Plotter.py
===================================================================
--- src/sas/qtgui/Plotter.py	(revision 31c5b583d8c577c4ed72be87d22d34ec2ed50c04)
+++ src/sas/qtgui/Plotter.py	(revision ef01be48d93733bf0b5ac6ff7ccce2ac92d368b6)
@@ -10,48 +10,15 @@
 from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
 import matplotlib.pyplot as plt
+import matplotlib as mpl
 
 import sas.qtgui.PlotHelper as PlotHelper
+from sas.qtgui.PlotterBase import PlotterBase
 
-class Plotter(QtGui.QDialog):
-    def __init__(self, parent=None):
-        super(Plotter, self).__init__(parent)
-
-        # Required for the communicator
-        self.parent = parent
-
-        # a figure instance to plot on
-        self.figure = plt.figure()
-
-        # this is the Canvas Widget that displays the `figure`
-        # it takes the `figure` instance as a parameter to __init__
-        self.canvas = FigureCanvas(self.figure)
-
-        # this is the Navigation widget
-        # it takes the Canvas widget and a parent
-        self.toolbar = NavigationToolbar(self.canvas, self)
-
-        # set the layout
-        layout = QtGui.QVBoxLayout()
-        layout.addWidget(self.canvas)
-        layout.addWidget(self.toolbar)
-        self.setLayout(layout)
-
-        # defaults
-        self._current_plot = 111
-        self._data = []
-        self._title = "Plot"
-        self._id = ""
-        self._xlabel = "X"
-        self._ylabel = "Y"
-        self._ax = self.figure.add_subplot(self._current_plot)
-
-        # Notify the helper
-        PlotHelper.addPlot(self)
-        # Notify the listeners
-        self.parent.communicator.activeGraphsSignal.emit(PlotHelper.currentPlots())
+class Plotter(PlotterBase):
+    def __init__(self, parent=None, quickplot=False):
+        super(Plotter, self).__init__(parent, quickplot=quickplot)
 
     @property
     def data(self):
-        """ data getter """
         return self._data
 
@@ -60,27 +27,8 @@
         """ data setter """
         self._data = value
-
-    def title(self, title=""):
-        """ title setter """
-        self._title = title
-
-    def id(self, id=""):
-        """ id setter """
-        self._id = id
-
-    def x_label(self, xlabel=""):
-        """ x-label setter """
-        self._xlabel = xlabel
-
-    def y_label(self, ylabel=""):
-        """ y-label setter """
-        self._ylabel = ylabel
-
-    def clean(self):
-        """
-        Redraw the graph
-        """
-        self.figure.delaxes(self._ax)
-        self._ax = self.figure.add_subplot(self._current_plot)
+        self.label=value.name
+        self.xLabel(xlabel="%s(%s)"%(value._xaxis, value._xunit))
+        self.yLabel(ylabel="%s(%s)"%(value._yaxis, value._yunit))
+        self.title(title=value.title)
 
     def plot(self, marker=None, linestyle=None):
@@ -89,5 +37,5 @@
         """
         # create an axis
-        ax = self._ax
+        ax = self.ax
 
         if marker == None:
@@ -98,11 +46,14 @@
 
         # plot data with legend
-        ax.plot(self._data.x, self._data.y, marker=marker, linestyle=linestyle, label=self._title)
+        ax.plot(self._data.x, self._data.y, marker=marker, linestyle=linestyle, label=self.title)
 
         # Now add the legend with some customizations.
-        legend = ax.legend(loc='lower left', shadow=True)
+        legend = ax.legend(loc='upper right', shadow=True)
 
-        ax.set_ylabel(self._ylabel)
-        ax.set_xlabel(self._xlabel)
+        ax.set_ylabel(self.y_label)
+        ax.set_xlabel(self.x_label)
+        # Title only for regular charts
+        if not self.quickplot:
+            ax.set_title(label=self.title)
 
         ax.set_yscale('log')
@@ -112,12 +63,2 @@
         self.canvas.draw()
 
-    def closeEvent(self, event):
-        """
-        Overwrite the close event adding helper notification
-        """
-        # Please remove me from your database.
-        PlotHelper.deletePlot(PlotHelper.idOfPlot(self))
-        # Notify the listeners
-        self.parent.communicator.activeGraphsSignal.emit(PlotHelper.currentPlots())
-        event.accept()
-
