Пример #1
0
    def __init__(self, title, left, top, width, height):
        super().__init__()

        self.title = title
        self.left = left
        self.top = top
        self.width = width
        self.height = height
        self.setWindowIcon(QtGui.QIcon("icon.png"))

        #file location
        self.open_file_location = os.path.dirname(os.path.abspath(__file__))
        self.save_file_location = os.path.dirname(os.path.abspath(__file__))

        # set textbox
        self.setTextBox()

        # set button
        self.setButton()

        # set label
        self.setLabel()

        self.uiManager = UIManager()

        self.initUI()
Пример #2
0
	def onDeleteSelectedItemsAndAddToStop(self):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		if scene:
			scene.deleteSelectedItems(True)
			mainUI = UIManager.instance().getMainUI()
			mainUI.symbolDock.widget().updateForbiddenSymbol()
Пример #3
0
 def onDeleteSelectedItemsAndAddToStop(self):
     from UIManager import UIManager
     scene = UIManager.instance().getScene()
     if scene:
         scene.deleteSelectedItems(True)
         mainUI = UIManager.instance().getMainUI()
         mainUI.symbolDock.widget().updateForbiddenSymbol()
Пример #4
0
	def _onOpen(self):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		scene.onOpenDB()

		mainUI = UIManager.instance().getMainUI()
		mainUI.symbolDock.widget().updateForbiddenSymbol()
		mainUI.schemeDock.widget().updateScheme()
Пример #5
0
	def __init__(self, *args):
		super(CodeView, self).__init__(*args)
		from UIManager import UIManager
		self.setScene(UIManager.instance().getScene())
		self.setViewportUpdateMode(QtGui.QGraphicsView.FullViewportUpdate)
		self.setCacheMode(QtGui.QGraphicsView.CacheNone)
		#self.setDragMode(QtGui.QGraphicsView.RubberBandDrag)
		self.setTransformationAnchor(QtGui.QGraphicsView.AnchorUnderMouse)
		self.setMouseTracking(True)
		self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
		self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
		self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
		self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
		self.setAcceptDrops(True)

		self.mousePressPnt = None
		self.mouseCurPnt = None
		self.isFrameSelectMode = False
		self.isMousePressed = False
 
		self.updateTimer = QtCore.QTimer()
		self.updateTimer.setInterval(70)
		self.connect(self.updateTimer, QtCore.SIGNAL('timeout()'), self, QtCore.SLOT('updateView()'))
		self.centerPnt = QtCore.QPointF()
		self.scale(0.6,0.6)
		self.brushRadius = 8
		self.setBackgroundBrush(QtGui.QBrush(QtGui.QColor(50,50,50)))
		self.hudFont = QtGui.QFont('tahoma', 8)
		self.hudFontMetric = QtGui.QFontMetrics(self.hudFont)
Пример #6
0
	def onSelectItems(self):
		from ui.CodeUIItem import CodeUIItem
		from ui.CodeUIEdgeItem import CodeUIEdgeItem
		itemList = self.selectedItems()
		# update LRU
		self.selectTimeStamp += 1
		for item in itemList:
			if not isinstance(item, CodeUIItem):
				continue
			item.selectCounter += 1
			item.selectTimeStamp = self.selectTimeStamp
			uniqueName = item.getUniqueName()
			self.updateLRU([uniqueName])

		self.removeItemLRU()

		# update comment
		itemName = ''
		itemComment = ''
		if len(itemList) == 1:
			item = itemList[0]
			if isinstance(item, CodeUIItem):
				itemName = item.name
				itemComment = self.itemDataDict.get(item.uniqueName, {}).get('comment','')
			elif isinstance(item, CodeUIEdgeItem):
				srcItem = self.itemDict.get(item.srcUniqueName)
				tarItem = self.itemDict.get(item.tarUniqueName)
				if srcItem and tarItem:
					itemName = srcItem.name + ' -> ' + tarItem.name
					itemComment = self.edgeDataDict.get((item.srcUniqueName, item.tarUniqueName), {}).get('comment', '')

		from UIManager import UIManager
		symbolWidget = UIManager.instance().getMainUI().getSymbolWidget()
		if symbolWidget:
			symbolWidget.updateSymbol(itemName, itemComment)
Пример #7
0
    def onClearOldestItem(self):
        from UIManager import UIManager
        from db.DBManager import DBManager

        scene = UIManager.instance().getScene()
        if scene:
            scene.clearOldItem()
Пример #8
0
	def onSelectItems(self):
		from ui.CodeUIItem import CodeUIItem
		from ui.CodeUIEdgeItem import CodeUIEdgeItem
		itemList = self.selectedItems()
		# update LRU
		self.selectTimeStamp += 1
		for item in itemList:
			if not isinstance(item, CodeUIItem):
				continue
			item.selectCounter += 1
			item.selectTimeStamp = self.selectTimeStamp
			uniqueName = item.getUniqueName()
			self.updateLRU([uniqueName])

		self.removeItemLRU()

		# update comment
		itemName = ''
		itemComment = ''
		if len(itemList) == 1:
			item = itemList[0]
			if isinstance(item, CodeUIItem):
				itemName = item.name
				itemComment = self.itemDataDict.get(item.uniqueName, {}).get('comment','')
			elif isinstance(item, CodeUIEdgeItem):
				srcItem = self.itemDict.get(item.srcUniqueName)
				tarItem = self.itemDict.get(item.tarUniqueName)
				if srcItem and tarItem:
					itemName = srcItem.name + ' -> ' + tarItem.name
					itemComment = self.edgeDataDict.get((item.srcUniqueName, item.tarUniqueName), {}).get('comment', '')

		from UIManager import UIManager
		symbolWidget = UIManager.instance().getMainUI().getSymbolWidget()
		if symbolWidget:
			symbolWidget.updateSymbol(itemName, itemComment)
Пример #9
0
	def onClearOldestItem(self):
		from UIManager import UIManager
		from db.DBManager import DBManager

		scene = UIManager.instance().getScene()
		if scene:
			scene.clearOldItem()
Пример #10
0
	def onDeleteOldItems(self):
		from UIManager import UIManager
		from db.DBManager import DBManager

		scene = UIManager.instance().getScene()
		if scene:
			scene.clearUnusedItems()
Пример #11
0
	def mouseDoubleClickEvent(self, event):
		super(CodeUIItem, self).mouseDoubleClickEvent(event)

		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		if scene:
			scene.showInEditor()
Пример #12
0
	def __init__(self, *args):
		super(CodeView, self).__init__(*args)
		from UIManager import UIManager
		self.setScene(UIManager.instance().getScene())
		self.setViewportUpdateMode(QtWidgets.QGraphicsView.FullViewportUpdate)
		self.setCacheMode(QtWidgets.QGraphicsView.CacheNone)
		#self.setDragMode(QtWidgets.QGraphicsView.RubberBandDrag)
		self.setTransformationAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
		self.setMouseTracking(True)
		self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
		self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
		self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
		self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
		self.setAcceptDrops(True)

		self.mousePressPnt = None
		self.mouseCurPnt = None
		self.isFrameSelectMode = False
		self.isMousePressed = False
 
		self.updateTimer = QtCore.QTimer()
		self.updateTimer.setInterval(70)
		# self.connect(self.updateTimer, QtCore.SIGNAL('timeout()'), self, QtCore.SLOT('updateView()'))
		self.updateTimer.timeout.connect(self.updateView)
		self.centerPnt = QtCore.QPointF()
		self.scale(0.6,0.6)
		self.brushRadius = 8
		self.setBackgroundBrush(QtGui.QBrush(QtGui.QColor(50,50,50)))
		self.hudFont = QtGui.QFont('tahoma', 8)
		self.hudFontMetric = QtGui.QFontMetrics(self.hudFont)
Пример #13
0
	def drawScheme(self, painter, rectF):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		schemeList = scene.getCurrentSchemeList()
		nScheme = len(schemeList)
		if not nScheme:
			return
		painter.setTransform(QtGui.QTransform())
		painter.setFont(self.hudFont)
		colorList = scene.getCurrentSchemeColorList()
		cw = 10
		y  = 10

		maxWidth = 0
		for ithScheme, schemeName in enumerate(schemeList):
			schemeSize = self.hudFontMetric.size(QtCore.Qt.TextSingleLine, schemeName)
			maxWidth = max(maxWidth, schemeSize.width())

		painter.setCompositionMode(QtGui.QPainter.CompositionMode_Multiply)
		painter.setPen(QtCore.Qt.NoPen)
		painter.setBrush(QtGui.QColor(0,0,0,150))
		painter.drawRect(5,5, 80 + maxWidth, nScheme * cw + (nScheme-1)*2 + 10)

		painter.setCompositionMode(QtGui.QPainter.CompositionMode_Source)
		for ithScheme, schemeName in enumerate(schemeList):
			painter.setPen(QtCore.Qt.NoPen)
			painter.setBrush(QtGui.QBrush(colorList[ithScheme]))
			painter.drawRect(QtCore.QRect(10,y+5,20,2))

			painter.setPen(QtGui.QPen(QtGui.QColor(255,157,38,255),1))
			painter.drawText(39, y+cw, 'Alt + %s' % (ithScheme+1,))
			painter.setPen(QtGui.QPen(QtGui.QColor(255,255,255,255),1))
			painter.drawText(QtCore.QRect(80,y-1,maxWidth,cw+3), QtCore.Qt.AlignRight | QtCore.Qt.AlignTop, schemeName)
			y += cw + 2
Пример #14
0
    def onDeleteOldItems(self):
        from UIManager import UIManager
        from db.DBManager import DBManager

        scene = UIManager.instance().getScene()
        if scene:
            scene.clearUnusedItems()
Пример #15
0
	def mouseDoubleClickEvent(self, event):
		super(CodeUIEdgeItem, self).mouseDoubleClickEvent(event)

		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		if scene:
			scene.showInEditor()
Пример #16
0
	def drawScheme(self, painter, rectF):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		schemeList = scene.getCurrentSchemeList()
		nScheme = len(schemeList)
		if not nScheme:
			return
		painter.setTransform(QtGui.QTransform())
		painter.setFont(self.hudFont)
		colorList = scene.getCurrentSchemeColorList()
		cw = 10
		y  = 10

		maxWidth = 0
		for ithScheme, schemeName in enumerate(schemeList):
			schemeSize = self.hudFontMetric.size(QtCore.Qt.TextSingleLine, schemeName)
			maxWidth = max(maxWidth, schemeSize.width())

		painter.setCompositionMode(QtGui.QPainter.CompositionMode_Multiply)
		painter.setPen(QtCore.Qt.NoPen)
		painter.setBrush(QtGui.QColor(0,0,0,150))
		painter.drawRect(5,5, 80 + maxWidth, nScheme * cw + (nScheme-1)*2 + 10)

		painter.setCompositionMode(QtGui.QPainter.CompositionMode_Source)
		for ithScheme, schemeName in enumerate(schemeList):
			painter.setPen(QtCore.Qt.NoPen)
			painter.setBrush(QtGui.QBrush(colorList[ithScheme]))
			painter.drawRect(QtCore.QRect(10,y+5,20,2))

			painter.setPen(QtGui.QPen(QtGui.QColor(255,157,38,255),1))
			painter.drawText(39, y+cw, 'Alt + %s' % (ithScheme+1,))
			painter.setPen(QtGui.QPen(QtGui.QColor(255,255,255,255),1))
			painter.drawText(QtCore.QRect(80,y-1,maxWidth,cw+3), QtCore.Qt.AlignRight | QtCore.Qt.AlignTop, schemeName)
			y += cw + 2
Пример #17
0
	def drawComment(self, painter, rectF):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()

		for uname, itemData in scene.itemDataDict.items():
			item = scene.itemDict.get(uname, None)
			if not item:
				continue
Пример #18
0
	def drawComment(self, painter, rectF):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()

		for uname, itemData in scene.itemDataDict.items():
			item = scene.itemDict.get(uname, None)
			if not item:
				continue
Пример #19
0
	def onAddToScene(self):
		item = self.resultList.currentItem()

		from UIManager import UIManager
		scene = UIManager.instance().getScene()

		if not item or not scene:
			return

		scene.acquireLock()
		res, codeItem = scene.addCodeItem(item.getUniqueName())

		if codeItem:
			UIManager.instance().getScene().clearSelection()
			codeItem.setSelected(True)

		scene.releaseLock()
Пример #20
0
 def getMiddlePos(self):
     from UIManager import UIManager
     scene = UIManager.instance().getScene()
     srcNode = scene.getNode(self.srcUniqueName)
     tarNode = scene.getNode(self.tarUniqueName)
     if not srcNode or not tarNode:
         return QtCore.QPointF()
     return (srcNode.pos() + tarNode.pos()) * 0.5
Пример #21
0
	def onAddToScene(self):
		item = self.resultList.currentItem()

		from UIManager import UIManager
		scene = UIManager.instance().getScene()

		if not item or not scene:
			return

		scene.acquireLock()
		res, codeItem = scene.addCodeItem(item.getUniqueName())

		if codeItem:
			UIManager.instance().getScene().clearSelection()
			codeItem.setSelected(True)

		scene.releaseLock()
Пример #22
0
	def getMiddlePos(self):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		srcNode = scene.getNode(self.srcUniqueName)
		tarNode = scene.getNode(self.tarUniqueName)
		if not srcNode or not tarNode:
			return QtCore.QPointF()
		return (srcNode.pos() + tarNode.pos()) * 0.5
Пример #23
0
	def showScheme(self, param):
		ithScheme = param[0]-1
		isSelected = False
		if len(param) >= 2:
			isSelected = param[1]
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		if scene:
			scene.showIthScheme(ithScheme, isSelected)
Пример #24
0
	def onAnalyze(self):
		dbmgr = DBManager.DBManager.instance()
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		if scene:
			scene.acquireLock()
			dbmgr.analysisDB()
			#dbmgr.getDB().open(r'C:\Users\me\AppData\Roaming\Sublime Text 3\Packages\CodeAtlas\CodeAtlasSublime.udb')
			scene.releaseLock()
Пример #25
0
 def onAnalyze(self):
     dbmgr = DBManager.DBManager.instance()
     from UIManager import UIManager
     scene = UIManager.instance().getScene()
     if scene:
         scene.acquireLock()
         dbmgr.analysisDB()
         #dbmgr.getDB().open(r'C:\Users\me\AppData\Roaming\Sublime Text 3\Packages\CodeAtlas\CodeAtlasSublime.udb')
         scene.releaseLock()
Пример #26
0
 def showScheme(self, param):
     ithScheme = param[0] - 1
     isSelected = False
     if len(param) >= 2:
         isSelected = param[1]
     from UIManager import UIManager
     scene = UIManager.instance().getScene()
     if scene:
         scene.showIthScheme(ithScheme, isSelected)
Пример #27
0
	def onTest(self):
		dbmgr = DBManager.DBManager.instance()
		# defaultPath = r'C:\Users\me\AppData\Roaming\Sublime Text 3\Packages\CodeAtlas\CodeAtlasSublime.udb'
		# defaultPath = 'I:/Programs/masteringOpenCV/Chapter3_MarkerlessAR/doc/xml/index.xml'
		# defaultPath = 'I:/Programs/mitsuba/doxygenData/xml/index.xml'
		defaultPath = 'D:/Code/NewRapidRT/rapidrt/Doxyfile'
		dbmgr.openDB(defaultPath)

		from UIManager import UIManager
		symScene = UIManager.instance().getSymbolScene()
Пример #28
0
 def getNodePos(self):
     from UIManager import UIManager
     scene = UIManager.instance().getScene()
     srcNode = scene.getNode(self.srcUniqueName)
     tarNode = scene.getNode(self.tarUniqueName)
     if not srcNode or not tarNode:
         return QtCore.QPointF(), QtCore.QPointF()
     srcPos = srcNode.pos()
     tarPos = tarNode.pos()
     return (srcNode.getRightSlotPos(), tarNode.getLeftSlotPos())
Пример #29
0
	def updateScheme(self):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		nameList = scene.getSchemeNameList()
		filter = self.filterEdit.text().lower()

		self.schemeList.clear()
		for name in nameList:
			if filter in name.lower():
				self.schemeList.addItem(SchemeItem(name))
Пример #30
0
	def onDeleteScheme(self):
		item = self.schemeList.currentItem()
		if not item:
			QtWidgets.QMessageBox.warning(self, "Warning", "Please select an item to delete.")
			return

		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		scene.deleteScheme(item.getUniqueName())
		self.updateScheme()
Пример #31
0
    def updateScheme(self):
        from UIManager import UIManager
        scene = UIManager.instance().getScene()
        nameList = scene.getSchemeNameList()
        filter = self.filterEdit.text().lower()

        self.schemeList.clear()
        for name in nameList:
            if filter in name.lower():
                self.schemeList.addItem(SchemeItem(name))
Пример #32
0
    def onTest(self):
        dbmgr = DBManager.DBManager.instance()
        # defaultPath = r'C:\Users\me\AppData\Roaming\Sublime Text 3\Packages\CodeAtlas\CodeAtlasSublime.udb'
        # defaultPath = 'I:/Programs/masteringOpenCV/Chapter3_MarkerlessAR/doc/xml/index.xml'
        # defaultPath = 'I:/Programs/mitsuba/doxygenData/xml/index.xml'
        defaultPath = 'D:/Code/NewRapidRT/rapidrt/Doxyfile'
        dbmgr.openDB(defaultPath)

        from UIManager import UIManager
        symScene = UIManager.instance().getSymbolScene()
Пример #33
0
	def getNodePos(self):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		srcNode = scene.getNode(self.srcUniqueName)
		tarNode = scene.getNode(self.tarUniqueName)
		if not srcNode or not tarNode:
			return QtCore.QPointF(), QtCore.QPointF()
		srcPos = srcNode.pos()
		tarPos = tarNode.pos()
		return (srcNode.getRightSlotPos(), tarNode.getLeftSlotPos())
Пример #34
0
	def keyPressEvent(self, event):
		from UIManager import UIManager
		mainUI = UIManager.instance().getMainUI()
		self.setCursor(QtCore.Qt.ArrowCursor)
		# if event.modifiers() == QtCore.Qt.AltModifier:
		if event.key() == QtCore.Qt.Key_Up:
			mainUI.goToUp()
		elif event.key() == QtCore.Qt.Key_Down:
			mainUI.goToDown()
		elif event.key() == QtCore.Qt.Key_Left:
			mainUI.goToLeft()
		elif event.key() == QtCore.Qt.Key_Right:
			mainUI.goToRight()
		elif event.modifiers() == QtCore.Qt.AltModifier:
			if event.key() == QtCore.Qt.Key_1:
				mainUI.showScheme([1, True])
			elif event.key() == QtCore.Qt.Key_2:
				mainUI.showScheme([2, True])
			elif event.key() == QtCore.Qt.Key_3:
				mainUI.showScheme([3, True])
			elif event.key() == QtCore.Qt.Key_4:
				mainUI.showScheme([4, True])
			elif event.key() == QtCore.Qt.Key_5:
				mainUI.showScheme([5, True])
			elif event.key() == QtCore.Qt.Key_6:
				mainUI.showScheme([6, True])
			elif event.key() == QtCore.Qt.Key_7:
				mainUI.showScheme([7, True])
			elif event.key() == QtCore.Qt.Key_8:
				mainUI.showScheme([8, True])
			elif event.key() == QtCore.Qt.Key_9:
				mainUI.showScheme([9, True])
		elif event.modifiers() == QtCore.Qt.ControlModifier:
			if event.key() == QtCore.Qt.Key_1:
				mainUI.toggleSelectedEdgeToScheme([1, True])
			elif event.key() == QtCore.Qt.Key_2:
				mainUI.toggleSelectedEdgeToScheme([2, True])
			elif event.key() == QtCore.Qt.Key_3:
				mainUI.toggleSelectedEdgeToScheme([3, True])
			elif event.key() == QtCore.Qt.Key_4:
				mainUI.toggleSelectedEdgeToScheme([4, True])
			elif event.key() == QtCore.Qt.Key_5:
				mainUI.toggleSelectedEdgeToScheme([5, True])
			elif event.key() == QtCore.Qt.Key_6:
				mainUI.toggleSelectedEdgeToScheme([6, True])
			elif event.key() == QtCore.Qt.Key_7:
				mainUI.toggleSelectedEdgeToScheme([7, True])
			elif event.key() == QtCore.Qt.Key_8:
				mainUI.toggleSelectedEdgeToScheme([8, True])
			elif event.key() == QtCore.Qt.Key_9:
				mainUI.toggleSelectedEdgeToScheme([9, True])
		else:
			super(CodeView, self).keyPressEvent(event)
		self.viewport().update()
Пример #35
0
	def keyPressEvent(self, event):
		from UIManager import UIManager
		mainUI = UIManager.instance().getMainUI()
		self.setCursor(QtCore.Qt.ArrowCursor)
		# if event.modifiers() == QtCore.Qt.AltModifier:
		if event.key() == QtCore.Qt.Key_Up:
			mainUI.goToUp()
		elif event.key() == QtCore.Qt.Key_Down:
			mainUI.goToDown()
		elif event.key() == QtCore.Qt.Key_Left:
			mainUI.goToLeft()
		elif event.key() == QtCore.Qt.Key_Right:
			mainUI.goToRight()
		elif event.modifiers() == QtCore.Qt.AltModifier:
			if event.key() == QtCore.Qt.Key_1:
				mainUI.showScheme([1, True])
			elif event.key() == QtCore.Qt.Key_2:
				mainUI.showScheme([2, True])
			elif event.key() == QtCore.Qt.Key_3:
				mainUI.showScheme([3, True])
			elif event.key() == QtCore.Qt.Key_4:
				mainUI.showScheme([4, True])
			elif event.key() == QtCore.Qt.Key_5:
				mainUI.showScheme([5, True])
			elif event.key() == QtCore.Qt.Key_6:
				mainUI.showScheme([6, True])
			elif event.key() == QtCore.Qt.Key_7:
				mainUI.showScheme([7, True])
			elif event.key() == QtCore.Qt.Key_8:
				mainUI.showScheme([8, True])
			elif event.key() == QtCore.Qt.Key_9:
				mainUI.showScheme([9, True])
		elif event.modifiers() == QtCore.Qt.ControlModifier:
			if event.key() == QtCore.Qt.Key_1:
				mainUI.toggleSelectedEdgeToScheme([1, True])
			elif event.key() == QtCore.Qt.Key_2:
				mainUI.toggleSelectedEdgeToScheme([2, True])
			elif event.key() == QtCore.Qt.Key_3:
				mainUI.toggleSelectedEdgeToScheme([3, True])
			elif event.key() == QtCore.Qt.Key_4:
				mainUI.toggleSelectedEdgeToScheme([4, True])
			elif event.key() == QtCore.Qt.Key_5:
				mainUI.toggleSelectedEdgeToScheme([5, True])
			elif event.key() == QtCore.Qt.Key_6:
				mainUI.toggleSelectedEdgeToScheme([6, True])
			elif event.key() == QtCore.Qt.Key_7:
				mainUI.toggleSelectedEdgeToScheme([7, True])
			elif event.key() == QtCore.Qt.Key_8:
				mainUI.toggleSelectedEdgeToScheme([8, True])
			elif event.key() == QtCore.Qt.Key_9:
				mainUI.toggleSelectedEdgeToScheme([9, True])
		else:
			super(CodeView, self).keyPressEvent(event)
		self.viewport().update()
Пример #36
0
	def onOpen(self):
		dialog = QtWidgets.QFileDialog()
		curDir = QtCore.QDir()
		curPath = curDir.currentPath()
		dbPath = dialog.getOpenFileName(self, 'Open Database', curDir.currentPath())
		if dbPath:
			dbmgr = DBManager.DBManager.instance()
			dbmgr.openDB(dbPath[0])

			from UIManager import UIManager
			symScene = UIManager.instance().getSymbolScene()
Пример #37
0
    def onDeleteScheme(self):
        item = self.schemeList.currentItem()
        if not item:
            QtGui.QMessageBox.warning(self, "Warning",
                                      "Please select an item to delete.")
            return

        from UIManager import UIManager
        scene = UIManager.instance().getScene()
        scene.deleteScheme(item.getUniqueName())
        self.updateScheme()
Пример #38
0
	def updateForbiddenSymbol(self):
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		forbidden = scene.getForbiddenSymbol()
		filter = self.filterEdit.text().lower()

		self.forbiddenList.clear()
		itemList = [ForbiddenItem(uname, name) for uname, name in forbidden.items() if filter in name.lower()]
		itemList.sort(key = lambda item: item.text().lower())
		for item in itemList:
			self.forbiddenList.addItem(item)
Пример #39
0
	def onOpenPath(self, param):
		dialog = QtWidgets.QFileDialog()
		curDir = QtCore.QDir()
		curPath = curDir.currentPath()
		if param and False:
			curPath = param[0]
		dbPath = dialog.getOpenFileName(self, 'Open Database', curPath)
		if dbPath:
			dbmgr = DBManager.DBManager.instance()
			dbmgr.getDB().open(dbPath)
			from UIManager import UIManager
			symScene = UIManager.instance().getSymbolScene()
Пример #40
0
 def onOpenPath(self, param):
     dialog = QtGui.QFileDialog()
     curDir = QtCore.QDir()
     curPath = curDir.currentPath()
     if param and False:
         curPath = param[0]
     dbPath = dialog.getOpenFileName(self, 'Open Database', curPath)
     if dbPath:
         dbmgr = DBManager.DBManager.instance()
         dbmgr.getDB().open(dbPath)
         from UIManager import UIManager
         symScene = UIManager.instance().getSymbolScene()
Пример #41
0
	def onShowScheme(self):
		item = self.schemeList.currentItem()
		if not item:
			QtWidgets.QMessageBox.warning(self, "Warning", "Please select an item to show.")
			return

		schemeName = item.getUniqueName()
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		scene.acquireLock()
		scene.showScheme(schemeName, True)
		scene.releaseLock()
		self.updateScheme()
Пример #42
0
    def onShowScheme(self):
        item = self.schemeList.currentItem()
        if not item:
            QtGui.QMessageBox.warning(self, "Warning",
                                      "Please select an item to show.")
            return

        schemeName = item.getUniqueName()
        from UIManager import UIManager
        scene = UIManager.instance().getScene()
        scene.acquireLock()
        scene.showScheme(schemeName, True)
        scene.releaseLock()
        self.updateScheme()
Пример #43
0
	def run(self):
		from UIManager import UIManager
		mainUI = UIManager.instance().getMainUI()
		self.recvSignal.connect(mainUI.onSocketEvent, Qt.Qt.QueuedConnection)

		address = self.myAddress
		self.socketObj = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
		self.socketObj.bind(address)

		while True:
			data, addr = self.socketObj.recvfrom(1024 * 5)
			dataStr = data.decode()
			self.recvSignal.emit(dataStr)

		print ('close socket')
		self.socketObj.close()
Пример #44
0
	def run(self):
		from UIManager import UIManager
		mainUI = UIManager.instance().getMainUI()
		self.recvSignal.connect(mainUI.onSocketEvent, Qt.Qt.QueuedConnection)

		address = self.myAddress
		self.socketObj = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
		self.socketObj.bind(address)

		while True:
			data, addr = self.socketObj.recvfrom(1024 * 5)
			dataStr = data.decode()
			self.recvSignal.emit(dataStr)

		print ('close socket')
		self.socketObj.close()
Пример #45
0
	def onSocketEvent(self, dataStr):
		from UIManager import UIManager

		dataObj = JSONDecoder().decode(dataStr)

		funName = dataObj.get('f')
		paramDict = dataObj.get('p', None)
		mainUI = self
		scene = UIManager.instance().getScene()
		funObj = getattr(mainUI, funName)
		if funObj:
			scene.acquireLock()
			if paramDict is None:
				funObj()
			else:
				funObj(paramDict)
			scene.releaseLock()
Пример #46
0
	def onDeleteForbidden(self):
		item = self.forbiddenList.currentItem()

		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		if not item or not scene:
			return

		scene.acquireLock()
		scene.deleteForbiddenSymbol(item.getUniqueName())
		self.updateForbiddenSymbol()

		item = self.forbiddenList.item(0)
		if item:
			self.forbiddenList.setCurrentItem(item)

		scene.releaseLock()
Пример #47
0
	def mouseMoveEvent(self, event):
		super(CodeUIItem, self).mouseMoveEvent(event)
		if self.isSelected():
			# update target positions of all dragging items
			from UIManager import UIManager
			scene = UIManager.instance().getScene()
			for uname, node in scene.itemDict.items():
				if node.isSelected():
					node.targetPos = QtCore.QPointF(node.pos().x(), node.pos().y())

		if event.buttons().__int__() & QtCore.Qt.MidButton or event.buttons().__int__() & QtCore.Qt.RightButton:
			print('event button:', event.buttons().__int__())
			drag = QtGui.QDrag(event.widget())
			mime = QtCore.QMimeData()
			mime.setText(self.uniqueName)
			drag.setMimeData(mime)
			drag.exec()
Пример #48
0
    def onSocketEvent(self, dataStr):
        from UIManager import UIManager

        dataObj = JSONDecoder().decode(dataStr)

        funName = dataObj.get('f')
        paramDict = dataObj.get('p', None)
        mainUI = self
        scene = UIManager.instance().getScene()
        funObj = getattr(mainUI, funName)
        if funObj:
            scene.acquireLock()
            if paramDict is None:
                funObj()
            else:
                funObj(paramDict)
            scene.releaseLock()
Пример #49
0
	def mouseMoveEvent(self, event):
		super(CodeUIItem, self).mouseMoveEvent(event)
		if self.isSelected():
			# update target positions of all dragging items
			from UIManager import UIManager
			scene = UIManager.instance().getScene()
			for uname, node in scene.itemDict.items():
				if node.isSelected():
					node.targetPos = QtCore.QPointF(node.pos().x(), node.pos().y())

		if event.buttons().__int__() & QtCore.Qt.MidButton or event.buttons().__int__() & QtCore.Qt.RightButton:
			print('event button:', event.buttons().__int__())
			drag = QtWidgets.QDrag(event.widget())
			mime = QtCore.QMimeData()
			mime.setText(self.uniqueName)
			drag.setMimeData(mime)
			drag.exec()
Пример #50
0
    def onDeleteForbidden(self):
        item = self.forbiddenList.currentItem()

        from UIManager import UIManager
        scene = UIManager.instance().getScene()
        if not item or not scene:
            return

        scene.acquireLock()
        scene.deleteForbiddenSymbol(item.getUniqueName())
        self.updateForbiddenSymbol()

        item = self.forbiddenList.item(0)
        if item:
            self.forbiddenList.setCurrentItem(item)

        scene.releaseLock()
Пример #51
0
    def drawLegend(self, painter, rectF):
        painter.setTransform(QtGui.QTransform())
        painter.setFont(self.hudFont)

        from UIManager import UIManager
        scene = UIManager.instance().getScene()
        itemDict = scene.getItemDict()
        classNameDict = {}
        for uname, item in itemDict.items():
            if item.isSelected() or item.isConnectedToFocusNode:
                cname = item.getClassName()
                if not cname:
                    cname = '[global function]'
                classNameDict[cname] = item.getColor()

        maxWidth = 0
        cw = 10
        nClasses = len(classNameDict)
        if not nClasses:
            return

        for className in classNameDict.keys():
            classSize = self.hudFontMetric.size(QtCore.Qt.TextSingleLine,
                                                className)
            maxWidth = max(maxWidth, classSize.width())

        painter.setCompositionMode(QtGui.QPainter.CompositionMode_Multiply)
        painter.setPen(QtCore.Qt.NoPen)
        painter.setBrush(QtGui.QColor(0, 0, 0, 150))
        interiorHeight = nClasses * cw + (nClasses - 1) * 2
        painter.drawRect(5,
                         self.height() - 15 - interiorHeight, 22 + maxWidth,
                         interiorHeight + 10)

        painter.setCompositionMode(QtGui.QPainter.CompositionMode_Source)
        y = self.height() - 20
        for cname, clr in classNameDict.items():
            painter.setPen(QtCore.Qt.NoPen)
            painter.setBrush(QtGui.QBrush(clr))
            painter.drawRect(QtCore.QRect(10, y, cw, cw))

            painter.setPen(QtGui.QPen(QtGui.QColor(255, 255, 255, 255), 1))
            painter.drawText(cw + 12, y + cw, cname)
            y -= cw + 2
Пример #52
0
	def onAddOrModifyScheme(self):
		schemeName = self.nameEdit.text()
		if not schemeName:
			return

		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		schemeNameList = scene.getSchemeNameList()
		isAdd = True
		if schemeName in schemeNameList:
			button = QtWidgets.QMessageBox.question(self, "Add Scheme",
												"\"%s\" already exists. Replace it?" % schemeName,
												QtWidgets.QMessageBox.Ok | QtWidgets.QMessageBox.No)
			if button != QtWidgets.QMessageBox.Ok:
				isAdd = False

		if isAdd:
			scene.addOrReplaceScheme(schemeName)
			self.updateScheme()
Пример #53
0
    def onAddOrModifyScheme(self):
        schemeName = self.nameEdit.text()
        if not schemeName:
            return

        from UIManager import UIManager
        scene = UIManager.instance().getScene()
        schemeNameList = scene.getSchemeNameList()
        isAdd = True
        if schemeName in schemeNameList:
            button = QtGui.QMessageBox.question(
                self, "Add Scheme",
                "\"%s\" already exists. Replace it?" % schemeName,
                QtGui.QMessageBox.Ok | QtGui.QMessageBox.No)
            if button != QtGui.QMessageBox.Ok:
                isAdd = False

        if isAdd:
            scene.addOrReplaceScheme(schemeName)
            self.updateScheme()
Пример #54
0
	def drawLegend(self, painter, rectF):
		painter.setTransform(QtGui.QTransform())
		painter.setFont(self.hudFont)

		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		itemDict = scene.getItemDict()
		classNameDict = {}
		for uname, item in itemDict.items():
			if item.isSelected() or item.isConnectedToFocusNode:
				cname = item.getClassName()
				if not cname:
					cname = '[global function]'
				classNameDict[cname] = item.getColor()

		maxWidth = 0
		cw = 10
		nClasses = len(classNameDict)
		if not nClasses:
			return

		for className in classNameDict.keys():
			classSize = self.hudFontMetric.size(QtCore.Qt.TextSingleLine, className)
			maxWidth = max(maxWidth, classSize.width())

		painter.setCompositionMode(QtGui.QPainter.CompositionMode_Multiply)
		painter.setPen(QtCore.Qt.NoPen)
		painter.setBrush(QtGui.QColor(0,0,0,150))
		interiorHeight = nClasses * cw + (nClasses-1)*2
		painter.drawRect(5,self.height()-15-interiorHeight, 22 + maxWidth, interiorHeight + 10)

		painter.setCompositionMode(QtGui.QPainter.CompositionMode_Source)
		y = self.height() - 20
		for cname, clr in classNameDict.items():
			painter.setPen(QtCore.Qt.NoPen)
			painter.setBrush(QtGui.QBrush(clr))
			painter.drawRect(QtCore.QRect(10,y,cw,cw))

			painter.setPen(QtGui.QPen(QtGui.QColor(255,255,255,255),1))
			painter.drawText(cw+12, y+cw, cname)
			y -= cw + 2
Пример #55
0
    def __init__(self, *args):
        super(SymbolView, self).__init__(*args)
        from UIManager import UIManager
        self.setScene(UIManager.instance().getSymbolScene())

        self.setViewportUpdateMode(QtGui.QGraphicsView.FullViewportUpdate)
        self.setCacheMode(QtGui.QGraphicsView.CacheNone)
        #self.setDragMode(QtGui.QGraphicsView.RubberBandDrag)
        self.setTransformationAnchor(QtGui.QGraphicsView.AnchorUnderMouse)
        self.setMouseTracking(True)
        self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.setAcceptDrops(True)
        self.setViewport(QtOpenGL.QGLWidget())

        self.centerPnt = QtCore.QPointF()
        self.scale(0.6, 0.6)

        self.mousePressPnt = None
        self.mouseCurPnt = None
        self.isFrameSelectMode = False
Пример #56
0
	def dropEvent(self, event):
		super(CodeUIItem, self).dropEvent(event)
		from UIManager import UIManager
		scene = UIManager.instance().getScene()
		if not scene:
			return

		mouseButtons = event.buttons()
		if mouseButtons & QtCore.Qt.MiddleButton:
			srcName = event.mimeData().text()
			srcItem = scene.getNode(srcName)
			if not srcItem:
				return
			if not srcItem.isFunction() or not self.isFunction():
				return
			scene.addCallPaths(srcName, self.uniqueName)
		elif mouseButtons & QtCore.Qt.RightButton:
			srcName = event.mimeData().text()
			srcItem = scene.getNode(srcName)
			if not srcItem:
				return
			scene.addCustomEdge(srcName, self.uniqueName, {})
Пример #57
0
	def __init__(self, *args):
		super(SymbolView, self).__init__(*args)
		from UIManager import UIManager
		self.setScene(UIManager.instance().getSymbolScene())


		self.setViewportUpdateMode(QtWidgets.QGraphicsView.FullViewportUpdate)
		self.setCacheMode(QtWidgets.QGraphicsView.CacheNone)
		#self.setDragMode(QtWidgets.QGraphicsView.RubberBandDrag)
		self.setTransformationAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
		self.setMouseTracking(True)
		self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
		self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
		self.setAcceptDrops(True)
		self.setViewport(QtOpenGL.QGLWidget())

		self.centerPnt = QtCore.QPointF()
		self.scale(0.6,0.6)

		self.mousePressPnt = None
		self.mouseCurPnt = None
		self.isFrameSelectMode = False