class Main(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        
        # This is always the same
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)
        
        self.pluginContainers = [self.ui.vlayoutInp, self.ui.vlayoutProc, self.ui.vlayoutOutp]
        
        self.plugins = [[],[],[]]
        
        self.run()
        



    def run(self):
        
        diag = pluginSelectionDialog()
        if diag.exec_():
            print 'diag:',diag.getSelected()
            
            
        for i in range(10):
            
            plugin = pluginWidget(self, i%3, i)
            
            plugin.onClickConfigSignal.connect(self.onClickConfigPlugin)
            plugin.onClickRemoveSignal.connect(self.onClickRemovePlugin)


            plugin.ui.txtName.setText('bla'+str(i))
            plugin.ui.txtDesc.setText(' blablablabla')
            
            self.pluginContainers[plugin.pluginType].insertWidget(0,plugin)

            self.plugins[plugin.pluginType].append(plugin)



            
    @QtCore.pyqtSlot(int)
    def onClickConfigPlugin(self, nr):
        print "configure plugin nr", nr

    @QtCore.pyqtSlot(QtGui.QWidget)
    def onClickRemovePlugin(self, plugin):
        print "remove plugin nr", plugin.number, "type:", plugin.pluginType
        self.pluginContainers[plugin.pluginType].removeWidget(plugin)
        self.plugins[plugin.pluginType].remove(plugin)
        plugin.deleteLater()
 def __init__(self):
     QtGui.QMainWindow.__init__(self)
     
     # This is always the same
     self.ui=Ui_MainWindow()
     self.ui.setupUi(self)
     
     self.pluginContainers = [self.ui.vlayoutInp, self.ui.vlayoutProc, self.ui.vlayoutOutp]
     
     self.plugins = [[],[],[]]
     
     self.run()