Ejemplo n.º 1
0
	def __init__(self):
		# Create a component checker
		self.componentChecker = {}
		self.configFile = os.path.expanduser('~/rcmanager.xml')
		# Gui config
		global dict
		QtGui.QDialog.__init__(self)
		self.root = '/opt/robocomp/'
		self.ui = Ui_Form()
		self.ui.setupUi(self)
		self.canvas = GraphView(self.ui.graphTab)
		self.canvas.setGeometry(0, 0, 531, 581)
		self.canvas.show()
		self.canvasTimer = QtCore.QTimer()
		self.canvasFastTimer = QtCore.QTimer()
		self.connect(self.canvas, QtCore.SIGNAL("nodeReleased()"), self.setFastState)
		self.setFastState(True)
		self.connect(self.canvasTimer, QtCore.SIGNAL("timeout()"), self.graphUpdate)
		self.connect(self.canvasFastTimer, QtCore.SIGNAL("timeout()"), self.graphFastEnds)
		if dict['dock'] == 'true':
			self.changeDock()

		# Variables needed to switch the state of components when double-clicking over them.
		self.clickTimes = 0
		self.lastClickTime = QtCore.QTime()
		self.clickNumber = -1

		# Component config containter
		self.compConfig = []

		# Init component sets
		self.back_comps = set()
		self.requests = set()

		# Icon and system's tray stuff
		self.iconOK = QtGui.QIcon(QtGui.QPixmap('/opt/robocomp/share/rcmanager/drawing_red.png'))
		self.iconFULL = QtGui.QIcon(QtGui.QPixmap('/opt/robocomp/share/rcmanager/drawing_green.png'))
		self.iconChange1 = QtGui.QIcon(QtGui.QPixmap('/opt/robocomp/share/rcmanager/drawing_right.png'))
		self.iconChange2 = QtGui.QIcon(QtGui.QPixmap('/opt/robocomp/share/rcmanager/drawing_left.png'))
		self.setWindowIcon(self.iconOK)
		self.state = 0
		self.doExit = False
		self.systray = None
		self.blinkTimer = QtCore.QTimer()
		self.doDock = False

		# Set the fixed timeout for component checking
		self.timer = QtCore.QTimer()
		self.timer.start(dict['fixed'])


		self.menu = QtGui.QMenuBar(None)
		self.ui.verticalLayout_3.insertWidget(0, self.menu)
		self.menuFile = self.menu.addMenu('File')
		self.menuSim = self.menu.addMenu('Simulation')
		self.menuActions = self.menu.addMenu('Actions')

		self.actionKillAll = self.menuActions.addAction('kill all')
		self.connect(self.actionKillAll, QtCore.SIGNAL("triggered(bool)"), self.killall)
		#self.actionRunAll = self.menuActions.addAction('run all')
		#self.connect(self.actionRunAll, QtCore.SIGNAL("triggered(bool)"), self.runall)

		self.actionOpen = self.menuFile.addAction('Open')
		self.connect(self.actionOpen, QtCore.SIGNAL("triggered(bool)"), self.openFile)
		self.actionSave = self.menuFile.addAction('Save')
		self.connect(self.actionSave, QtCore.SIGNAL("triggered(bool)"), self.saveFile)
		self.actionEdit = self.menuFile.addAction('Edit')
		self.connect(self.actionEdit, QtCore.SIGNAL("triggered(bool)"), self.runEditor)
		self.actionDock = self.menuFile.addAction('Dock')
		self.connect(self.actionDock, QtCore.SIGNAL("triggered(bool)"), self.changeDock)
		self.actionExit = self.menuFile.addAction('Exit')
		self.connect(self.actionExit, QtCore.SIGNAL("triggered(bool)"), self.forceExit)

		# Do we want the eye-candy graph simulation?
		if (dict['active'] == "true"):
			self.doSimulation = True
		else:
			self.doSimulation = False
		if self.doSimulation == True:
			self.actionSS = self.menuSim.addAction('Stop')
		else:
			self.actionSS = self.menuSim.addAction('Start')

		# Set connections
		self.connect(self.ui.checkList, QtCore.SIGNAL("itemClicked(QListWidgetItem *)"), self.selectCheck)
		self.connect(self.ui.upButton, QtCore.SIGNAL("clicked()"), self.up)
		self.connect(self.ui.downButton, QtCore.SIGNAL("clicked()"), self.down)
		self.connect(self.ui.tabWidget, QtCore.SIGNAL("currentChanged(int)"), self.tabChanged)
		self.connect(self.timer, QtCore.SIGNAL("timeout()"), self.checkAll)
		self.connect(self.canvas, QtCore.SIGNAL('upRequest()'), self.manageGraphUp)
		self.connect(self.canvas, QtCore.SIGNAL('downRequest()'), self.manageGraphDown)
		self.connect(self.canvas, QtCore.SIGNAL('configRequest()'), self.manageGraphConfig)
		self.connect(self.actionSS, QtCore.SIGNAL("triggered(bool)"), self.sSimulation)

		# Draw the graph
		self.canvas.update()

		# Get settings
		settings = QtCore.QSettings("RoboComp", "rcmanager")
		value = settings.value("geometry").toByteArray()
		if value != None:
			self.restoreGeometry(value)
		value = settings.value("page").toInt()
		if value != None:
			if value[1] == True:
				self.ui.tabWidget.setCurrentIndex(value[0])
		value = settings.value("docking").toBool()
		if value != None:
			if value == True:
				self.changeDock()