예제 #1
0
파일: Introspector.py 프로젝트: pixpil/gii
	def __init__( self, *args ):
		super( ObjectContainer, self ).__init__( *args )
		self.ui = ObjectContainerBase()
		self.ui.setupUi( self )

		self.setSizePolicy( 
			QtGui.QSizePolicy.Expanding,
			QtGui.QSizePolicy.Fixed
			)
		self.setAttribute( Qt.WA_NoSystemBackground, True )
		self.mainLayout = QtGui.QVBoxLayout(self.getInnerContainer())
		self.mainLayout.setSpacing(0)
		self.mainLayout.setMargin(0)
		self.contextObject = None

		self.folded = False
		self.toggleFold( False, True )
		
		self.ui.buttonFold.clicked.connect( lambda x: self.toggleFold( None ) )
		
		self.ui.buttonContext.clicked.connect( lambda x: self.openContextMenu() )
		self.ui.buttonContext.setIcon( getIcon( 'menu' ) )
		
		self.ui.buttonName.clicked.connect( lambda x: self.toggleFold( None ) )
		self.ui.buttonName.setIcon( getIcon( 'component' ) )
		self.ui.buttonName.setToolButtonStyle( Qt.ToolButtonTextBesideIcon )
		
		self.ui.buttonKey.setIcon( getIcon( 'key' ) )
		self.ui.buttonKey.hide()

		self.ui.buttonFold.setIcon( getIcon( 'node_folded' ) )
예제 #2
0
    def updateItemContent(self, item, node, **option):
        if node == self.getRootNode(): return
        clasName = node.getClassName(node)

        if clasName == 'TextureGroup':
            if node.default:
                item.setIcon(0, getIcon('folder_cyan'))
            else:
                item.setIcon(0, getIcon('folder'))
            item.setText(0, node.name)
            item.setExpanded(node.expanded)
        else:
            path = node.path
            if node.isPrebuiltAtlas(node):
                item.setIcon(0, getIcon('cell'))
            else:
                item.setIcon(0, getIcon('texture'))
            item.setText(0, os.path.basename(path))
            item.setText(1, os.path.dirname(path))

        if node.processor:
            processorName, ext = os.path.splitext(
                os.path.basename(node.processor))
            item.setText(2, processorName)
        else:
            item.setText(2, '')
예제 #3
0
파일: SceneSearch.py 프로젝트: pixpil/gii
 def updateItemContent(self, item, node, **option):
     t = node.getType()
     item.setText(0, node.getName())
     if t == 'group':
         item.setIcon(0, getIcon('folder-tag'))
     else:
         item.setIcon(0, getIcon('asset-filter'))
예제 #4
0
	def __init__( self, *args, **kwargs ):
		super( AssetBrowserNavigator, self ).__init__( *args, **kwargs )
		layout = QtGui.QHBoxLayout( self )
		layout.setSpacing( 1 )
		layout.setMargin( 0 )
		self.buttonUpper    = QtGui.QToolButton()
		self.buttonForward  = QtGui.QToolButton()
		self.buttonBackward = QtGui.QToolButton()
		self.buttonUpper.setIconSize( QSize( 16, 16 )  )
		self.buttonForward.setIconSize( QSize( 16, 16 )  )
		self.buttonBackward.setIconSize( QSize( 16, 16 )  )
		self.buttonUpper.setIcon( getIcon( 'upper_folder' ) )
		self.buttonForward.setIcon( getIcon( 'history_forward' ) )
		self.buttonBackward.setIcon( getIcon( 'history_backward' ) )
		layout.addWidget( self.buttonUpper )
		layout.addSpacing( 10 )
		layout.addWidget( self.buttonBackward )
		layout.addWidget( self.buttonForward )
		self.buttonUpper.clicked.connect( self.onGoUpperLevel )
		self.buttonForward.clicked.connect( self.onHistoryForward )
		self.buttonBackward.clicked.connect( self.onHistoryBackward )

		self.crumbBar = AssetBrowserNavigatorCrumbBar()
		layout.addWidget( self.crumbBar )
		self.crumbBar.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding )
		self.setFixedHeight( 20 )
예제 #5
0
파일: SceneSearch.py 프로젝트: pixpil/gii
 def updateHeaderItem(self, item, col, info):
     if info[0] == 'V':
         item.setText(col, '')
         item.setIcon(col, getIcon('entity_vis'))
     elif info[0] == 'L':
         item.setText(col, '')
         item.setIcon(col, getIcon('entity_lock'))
예제 #6
0
	def updateItemContent( self, item, node, **option ):
		t = node.getType()
		item.setText( 0, node.getName() )
		if t == 'group':
			item.setIcon(0, getIcon( 'folder-tag' ) )
		else:
			item.setIcon(0, getIcon( 'asset-filter' ) )
예제 #7
0
    def updateItemContent(self, item, node, **option):
        if node == self.getRootNode():
            return
        clasName = node.getClassName(node)

        if clasName == "TextureGroup":
            if node.default:
                item.setIcon(0, getIcon("folder_cyan"))
            else:
                item.setIcon(0, getIcon("folder"))
            item.setText(0, node.name)
            item.setExpanded(node.expanded)
        else:
            path = node.path
            if node.isPrebuiltAtlas(node):
                item.setIcon(0, getIcon("cell"))
            else:
                item.setIcon(0, getIcon("texture"))
            item.setText(0, os.path.basename(path))
            item.setText(1, os.path.dirname(path))

        if node.processor:
            processorName, ext = os.path.splitext(os.path.basename(node.processor))
            item.setText(2, processorName)
        else:
            item.setText(2, "")
예제 #8
0
	def createWidget( self, container ):
		self.container = container
		self.container.setCallbackOnClose( self.onClose )
		self.toolbar = self.container.addToolBar()
		self.toolbar.setIconSize( QtCore.QSize( 16, 16 ) )
		self.actionSave   = self.toolbar.addAction( getIcon( 'save' ), 'Save' )
		self.actionLocate = self.toolbar.addAction( getIcon( 'search-2' ), 'Locate' )
		self.actionSave.setEnabled( False )

		self.actionSave.triggered.connect( self.onActionSave )
		self.actionLocate.triggered.connect( self.onActionLocate )

		self.window = window = self.container.addWidgetFromFile(
			_getModulePath('SerializableEditor.ui')
		)

		self.scroll = scroll = addWidgetWithLayout(
			QtGui.QScrollArea( window.containerProperty ),
			window.containerProperty
		)

		scroll.verticalScrollBar().setStyleSheet('width:4px')
		scroll.setWidgetResizable( True )
		self.propertyEditor = PropertyEditor( scroll )
		scroll.setWidget( self.propertyEditor )
		self.propertyEditor.propertyChanged.connect( self.onPropertyChanged )
예제 #9
0
	def __init__(self, *args):
		super(SearchFieldWidget, self).__init__( *args )
		self.parentEditor = None
		self.layout = layout = QtGui.QHBoxLayout( self )
		layout.setSpacing( 0 )
		layout.setMargin( 0 )
		self.buttonRef   = buttonRef   = SearchFieldButton( self )
		self.buttonGoto  = buttonGoto  = SearchFieldButton( self )
		self.buttonClear = buttonClear = SearchFieldButton( self )
		buttonRef.setObjectName( 'ButtonReferenceField' )
		self.buttonRef.setToolButtonStyle( Qt.ToolButtonTextBesideIcon )
		buttonRef.setSizePolicy(
			QtGui.QSizePolicy.Expanding,
			QtGui.QSizePolicy.Fixed
			)
		buttonGoto.setSizePolicy(
			QtGui.QSizePolicy.Fixed,
			QtGui.QSizePolicy.Fixed
			)
		buttonClear.setSizePolicy(
			QtGui.QSizePolicy.Fixed,
			QtGui.QSizePolicy.Fixed
			)
		buttonRef.setText( '<None>' )
		buttonRef.setStyleSheet ("text-align: left;"); 
		buttonGoto.setIcon( getIcon('search-2') )
		buttonClear.setIcon( getIcon('remove') )
		layout.addWidget( buttonGoto )
		layout.addWidget( buttonRef )
		layout.addWidget( buttonClear )
		self.targetRef = None 
		self.setRef( None )
		self.setAcceptDrops( False )
예제 #10
0
    def createWidget(self, container):
        self.container = container
        self.container.setCallbackOnClose(self.onClose)
        self.toolbar = self.container.addToolBar()
        self.toolbar.setIconSize(QtCore.QSize(16, 16))
        self.actionSave = self.toolbar.addAction(getIcon('save'), 'Save')
        self.actionLocate = self.toolbar.addAction(getIcon('search-2'),
                                                   'Locate')
        self.actionSave.setEnabled(False)

        self.actionSave.triggered.connect(self.onActionSave)
        self.actionLocate.triggered.connect(self.onActionLocate)

        self.window = window = self.container.addWidgetFromFile(
            _getModulePath('SerializableEditor.ui'))

        self.scroll = scroll = addWidgetWithLayout(
            QtGui.QScrollArea(window.containerProperty),
            window.containerProperty)

        scroll.verticalScrollBar().setStyleSheet('width:4px')
        scroll.setWidgetResizable(True)
        self.propertyEditor = PropertyEditor(scroll)
        scroll.setWidget(self.propertyEditor)
        self.propertyEditor.propertyChanged.connect(self.onPropertyChanged)
예제 #11
0
	def updateHeaderItem( self, item, col, info ):
		if info[0] == 'V':
			item.setText( col, '')
			item.setIcon( col, getIcon( 'entity_vis' ) )
		elif info[0] == 'L':
			item.setText( col, '')
			item.setIcon( col, getIcon( 'entity_lock' ) )
예제 #12
0
    def __init__(self, *args, **kwargs):
        super(AssetBrowserNavigator, self).__init__(*args, **kwargs)
        layout = QtWidgets.QHBoxLayout(self)
        layout.setSpacing(1)
        layout.setContentsMargins(0, 0, 0, 0)
        self.buttonUpper = QtWidgets.QToolButton()
        self.buttonForward = QtWidgets.QToolButton()
        self.buttonBackward = QtWidgets.QToolButton()
        self.buttonUpper.setIconSize(QSize(16, 16))
        self.buttonForward.setIconSize(QSize(16, 16))
        self.buttonBackward.setIconSize(QSize(16, 16))
        self.buttonUpper.setIcon(getIcon('upper_folder'))
        self.buttonForward.setIcon(getIcon('history_forward'))
        self.buttonBackward.setIcon(getIcon('history_backward'))
        layout.addWidget(self.buttonUpper)
        layout.addSpacing(10)
        layout.addWidget(self.buttonBackward)
        layout.addWidget(self.buttonForward)
        self.buttonUpper.clicked.connect(self.onGoUpperLevel)
        self.buttonForward.clicked.connect(self.onHistoryForward)
        self.buttonBackward.clicked.connect(self.onHistoryBackward)

        self.crumbBar = AssetBrowserNavigatorCrumbBar()
        layout.addWidget(self.crumbBar)
        self.crumbBar.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                    QtWidgets.QSizePolicy.Expanding)
예제 #13
0
파일: SearchView.py 프로젝트: tommo/gii
	def updateItemContent( self, item, node, **option ):
		if node == self.getRootNode(): return
		item.setIcon( 0, getIcon( node.checked and 'checkbox_checked' or 'checkbox_unchecked' ) )
		item.setText( 1, node.name )
		item.setText( 2, node.typeName )
		if node.iconName:
			item.setIcon( 1, getIcon( node.iconName, 'default_item' ) )
예제 #14
0
파일: Introspector.py 프로젝트: pixpil/gii
    def __init__(self, *args):
        super(ObjectContainer, self).__init__(*args)
        self.ui = ObjectContainerBase()
        self.ui.setupUi(self)

        self.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                           QtWidgets.QSizePolicy.Fixed)
        # self.setAttribute( Qt.WA_NoSystemBackground, True )
        self.mainLayout = QtWidgets.QVBoxLayout(self.getInnerContainer())
        self.mainLayout.setSpacing(0)
        self.mainLayout.setContentsMargins(0, 0, 0, 0)
        self.contextObject = None

        self.folded = False
        self.toggleFold(False, True)

        self.ui.buttonFold.clicked.connect(lambda x: self.toggleFold(None))

        self.ui.buttonContext.clicked.connect(lambda x: self.openContextMenu())
        self.ui.buttonContext.setIcon(getIcon('menu'))

        self.ui.buttonName.clicked.connect(lambda x: self.toggleFold(None))
        self.ui.buttonName.setIcon(getIcon('component'))
        self.ui.buttonName.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)

        self.ui.buttonKey.setIcon(getIcon('key'))
        self.ui.buttonKey.hide()

        self.ui.buttonFold.setIcon(getIcon('node_folded'))
예제 #15
0
 def updateItemContent(self, item, node, **option):
     name = None
     if node.type == 'group':
         item.setIcon(0, getIcon('folder'))
         item.setText(0, node.name)
     else:
         item.setIcon(0, getIcon('text'))
         item.setText(0, node.name)
         item.setText(1, node.objectType or '???')
예제 #16
0
	def updateItemContent( self, item, node, **option ):
		name = None
		if node.type == 'group':
			item.setIcon( 0, getIcon('folder') )
			item.setText( 0, node.name )
		else:
			item.setIcon( 0, getIcon('text') )
			item.setText( 0, node.name )
			item.setText( 1, node.objectType or '???' )
예제 #17
0
	def __init__(self, *args):
		super(SearchFieldWidget, self).__init__( *args )
		self.parentEditor = None
		layout = QtWidgets.QHBoxLayout( self )
		layout.setSpacing( 0 )
		layout.setContentsMargins( 0 , 0 , 0 , 0 )
		self.buttonGoto  = buttonGoto  = SearchFieldButton( self )
		self.buttonRef   = buttonRef   = SearchFieldButton( self )
		self.buttonOpen  = buttonOpen  = SearchFieldButton( self )
		self.buttonClear = buttonClear = SearchFieldButton( self )
		self.buttonSync  = buttonSync  = SearchFieldButton( self )

		buttonRef.setObjectName( 'ButtonReferenceField' )
		self.buttonRef.setToolButtonStyle( Qt.ToolButtonTextBesideIcon )
		self.buttonFlags = dict(
			goto = True,
			clear = True,
			open = False,
		)

		buttonRef.setSizePolicy(
			QtWidgets.QSizePolicy.Expanding,
			QtWidgets.QSizePolicy.Fixed
			)
		buttonGoto.setSizePolicy(
			QtWidgets.QSizePolicy.Fixed,
			QtWidgets.QSizePolicy.Fixed
			)
		buttonOpen.setSizePolicy(
			QtWidgets.QSizePolicy.Fixed,
			QtWidgets.QSizePolicy.Fixed
			)
		buttonClear.setSizePolicy(
			QtWidgets.QSizePolicy.Fixed,
			QtWidgets.QSizePolicy.Fixed
			)
		buttonSync.setSizePolicy(
			QtWidgets.QSizePolicy.Fixed,
			QtWidgets.QSizePolicy.Fixed
			)
		buttonRef.setText( '<None>' )
		buttonRef.setStyleSheet ("text-align: left;"); 
		buttonGoto.setIcon( getIcon('search') )
		buttonOpen.setIcon( getIcon('pencil') )
		buttonClear.setIcon( getIcon('remove') )
		buttonSync.setIcon( getIcon('in') )

		layout.addWidget( buttonGoto  )
		layout.addWidget( buttonOpen  )
		layout.addWidget( buttonSync )
		layout.addWidget( buttonRef   )
		layout.addWidget( buttonClear )

		self.targetRef = None 
		self.setRef( None )
		self.setAcceptDrops( False )
		buttonOpen.hide()
예제 #18
0
 def updateItemContent(self, item, node, **option):
     if node == self.getRootNode(): return
     item.setIcon(
         0,
         getIcon(node.checked and 'checkbox_checked'
                 or 'checkbox_unchecked'))
     item.setText(1, node.name)
     item.setText(2, node.typeName)
     if node.iconName:
         item.setIcon(1, getIcon(node.iconName, 'default_item'))
예제 #19
0
	def updateItemContent( self, item, node, **option ):
		if isMockInstance( node, 'AnimatorClipGroup' ):
			# pal = self.palette()
			# defaultBrush = QColorF( .8,.8,.8 )
			# name = None
			item.setText( 0, node.name )
			item.setIcon( 0, getIcon('folder') )
		else:
			item.setText( 0, node.name )
			item.setIcon( 0, getIcon('clip') )
예제 #20
0
 def updateItemContent(self, item, node, **option):
     if node == self.manager: return
     #TODO:icon
     item.setText(0, node.alias)
     item.setText(1, node.path)
     item.setText(2, str(node.id))
     if node.entry:
         item.setIcon(0, getIcon('scene'))
     else:
         item.setIcon(0, getIcon('obj'))
예제 #21
0
파일: DeployManager.py 프로젝트: pixpil/gii
	def updateItemContent( self, item, node, **option ):
		if node == self.manager: return
		#TODO:icon
		item.setText( 0, node.alias )
		item.setText( 1, node.path )
		item.setText( 2, str(node.id) )
		if node.entry:
			item.setIcon(0, getIcon( 'scene' ) )
		else:
			item.setIcon(0, getIcon( 'obj' ) )
예제 #22
0
 def updateItemContent(self, item, node, **option):
     if node == self.getRootNode():
         item.setText(0, node['name'])
         item.setIcon(0, getIcon('effect/group'))
     else:
         typeName = node.getTypeName(node)
         item.setText(0, node['name'])
         item.setText(1, typeName)
         item.setIcon(
             0, getIcon('effect/' + typeName.lower(), 'effect/unknown'))
예제 #23
0
파일: LayerManager.py 프로젝트: pixpil/gii
    def updateItemContent(self, item, node, **option):
        pal = self.palette()
        defaultBrush = QColorF(.8, .8, .8)
        name = None
        if isMockInstance(node, 'Layer'):
            style = defaultBrush
            item.setText(0, node.name)
            if node.default:
                item.setIcon(0, getIcon('layer_default'))
            else:
                item.setIcon(0, getIcon('layer'))

            if node.editorVisible:
                item.setIcon(1, getIcon('ok'))
            else:
                item.setIcon(1, getIcon('no'))
                style = _BrushLayerHidden

            if not node.locked:
                item.setIcon(2, getIcon('ok'))
            else:
                item.setIcon(2, getIcon('no'))

            if node.editorSolo == 'solo':
                item.setIcon(3, getIcon('ok'))
                style = _BrushLayerSolo
            else:
                item.setIcon(3, getIcon(None))
                if self.hasSoloLayer: style = _BrushLayerHidden

            item.setForeground(0, style)
        else:
            item.setText(0, '')
            item.setIcon(0, getIcon('normal'))
예제 #24
0
파일: LayerManager.py 프로젝트: pixpil/gii
	def updateItemContent( self, item, node, **option ):
		pal = self.palette()
		defaultBrush = QColorF( .8,.8,.8 )
		name = None
		if isMockInstance( node, 'Layer' ):
			style = defaultBrush
			item.setText( 0, node.name )
			if node.default :
				item.setIcon( 0, getIcon('layer_default') )
			else:
				item.setIcon( 0, getIcon('layer') )

			if node.editorVisible:
				item.setIcon( 1, getIcon('ok') )
			else:
				item.setIcon( 1, getIcon('no'))
				style = _BrushLayerHidden

			if not node.locked:
				item.setIcon( 2, getIcon('ok') )
			else:
				item.setIcon( 2, getIcon('no'))
				
			if node.editorSolo == 'solo':
				item.setIcon( 3, getIcon('ok') )
				style = _BrushLayerSolo
			else:
				item.setIcon( 3, getIcon(None) )
				if self.hasSoloLayer: style = _BrushLayerHidden

			item.setForeground( 0, style )
		else:
			item.setText( 0, '' )
			item.setIcon( 0, getIcon('normal') )
예제 #25
0
파일: SceneView.py 프로젝트: pixpil/gii
    def updateItemContent(self, item, node, **option):
        name = None
        item.setData(0, Qt.UserRole, 0)
        item.setText(0, node.getLabel(node))

        if node.isVisible(node):
            item.setIcon(1, getIcon('entity_vis'))
        elif node.isLocalVisible(node):
            item.setIcon(1, getIcon('entity_parent_invis'))
        else:
            item.setIcon(1, getIcon('entity_invis'))
예제 #26
0
	def updateItemContent( self, item, node, **option ):
		pal = self.palette()
		defaultBrush = QColorF( .8,.8,.8 )
		name = None

		if isMockInstance( node, 'AnimatorTrackGroup' ):
			item.setText( 0, node.toString( node ) )
			item.setIcon( 0, getIcon('track_group') )
		elif isMockInstance( node, 'AnimatorClipSubNode' ):
			item.setText( 0, node.toString( node ) )
			item.setIcon( 0, getIcon(node.getIcon( node )) )
			item.setIcon( 1, getIcon('track_key_0') )
예제 #27
0
 def updateItemContent(self, item, node, **option):
     if node == self.module: return
     item.setIcon(0, getIcon('default_item'))
     item.setText(0, node.getName(node))
     assetLib = AssetLibrary.get()
     assetPath = node.getAssetPath(node)
     assetNode = assetLib.getAssetNode(assetPath)
     item.setText(1, assetPath)
     if assetNode:
         iconName = assetLib.getAssetIcon(assetNode.getType()) or 'normal'
         item.setIcon(1, getIcon(iconName, 'normal'))
     else:
         item.setIcon(1, getIcon('missing'))
예제 #28
0
파일: Introspector.py 프로젝트: pixpil/gii
	def toggleFold( self, folded = None, notify = True ):
		if folded == None:
			folded = not self.folded
		self.folded = folded
		if folded:
			# self.ui.buttonFold.setText( '+' )
			self.ui.buttonFold.setIcon( getIcon( 'node_folded' ) )
			self.ui.ObjectInnerContainer.hide()
		else:
			# self.ui.buttonFold.setText( '-' )
			self.ui.buttonFold.setIcon( getIcon( 'node_unfolded' ) )
			self.ui.ObjectInnerContainer.show()
		if notify:
			self.foldChanged.emit( self.folded )
예제 #29
0
파일: Introspector.py 프로젝트: pixpil/gii
 def toggleFold(self, folded=None, notify=True):
     if folded == None:
         folded = not self.folded
     self.folded = folded
     if folded:
         # self.ui.buttonFold.setText( '+' )
         self.ui.buttonFold.setIcon(getIcon('node_folded'))
         self.ui.ObjectInnerContainer.hide()
     else:
         # self.ui.buttonFold.setText( '-' )
         self.ui.buttonFold.setIcon(getIcon('node_unfolded'))
         self.ui.ObjectInnerContainer.show()
     if notify:
         self.foldChanged.emit(self.folded)
예제 #30
0
    def __init__(self, *args):
        super(PanelDebug, self).__init__(*args)

        layout = QtGui.QVBoxLayout(self)
        layout.setSpacing(0)
        layout.setMargin(0)

        self.toolbar = QtGui.QToolBar(self)
        self.toolbar.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                   QtGui.QSizePolicy.Minimum)
        self.toolbar.setIconSize(QtCore.QSize(16, 16))
        layout.addWidget(self.toolbar)

        splitter = QtGui.QSplitter(QtCore.Qt.Horizontal)
        splitter.setSizePolicy(QtGui.QSizePolicy.Expanding,
                               QtGui.QSizePolicy.Expanding)
        layout.addWidget(splitter)

        font = QtGui.QFont()
        font.setFamily('Consolas')
        font.setPointSize(12)

        listStack = ListStackView()
        treeScope = TreeScopeView()

        listStack.setFont(font)
        treeScope.setFont(font)

        self.listStack = listStack
        self.treeScope = treeScope

        listStack.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                QtGui.QSizePolicy.Expanding)
        treeScope.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                QtGui.QSizePolicy.Expanding)

        splitter.addWidget(listStack)
        splitter.addWidget(treeScope)

        self.actionStepOver = self.toolbar.addAction(
            getIcon('debugger/stepover'), 'Step Over')
        self.actionStepIn = self.toolbar.addAction(getIcon('debugger/stepin'),
                                                   'Step In')
        self.actionStepOut = self.toolbar.addAction(
            getIcon('debugger/stepout'), 'Step Out')

        self.actionStepOver.triggered.connect(self.onStepOver)
        self.actionStepIn.triggered.connect(self.onStepIn)
        self.actionStepOut.triggered.connect(self.onStepOut)
예제 #31
0
파일: Deck2DEditor.py 프로젝트: pixpil/gii
	def updateItemContent( self, item, node, **option ):
		if node == self.getRootNode() : return
		
		item.setText( 0, node['name'] )
		item.setText( 1, node['type'] )

		if node['type'] == 'stretchpatch':
			item.setIcon( 0, getIcon('deck_patch'))
		elif node['type'] == 'tileset':
			item.setIcon( 0, getIcon('deck_tileset'))
		elif node['type'] == 'quad_array':
			item.setIcon( 0, getIcon('deck_quad_array'))
		elif node['type'] == 'polygon':
			item.setIcon( 0, getIcon('deck_polygon'))
		else:
			item.setIcon( 0, getIcon('deck_quad'))
예제 #32
0
    def __init__(self, *args):
        super(GenericListFilter, self).__init__(*args)

        self.targetList = None

        self.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                           QtWidgets.QSizePolicy.Fixed)
        self.setMinimumSize(100, 20)
        layout = QtWidgets.QHBoxLayout(self)
        layout.setContentsMargins(0, 0, 0, 0)
        layout.setSpacing(0)

        self.buttonClear = QtWidgets.QToolButton(self)
        self.buttonClear.setText('X')
        self.buttonClear.setObjectName('ClearButton')
        self.buttonClear.setIconSize(QtCore.QSize(12, 12))
        self.buttonClear.setIcon(getIcon('remove'))
        self.lineEdit = QtWidgets.QLineEdit(self)
        self.lineEdit.textChanged.connect(self.onTextChanged)
        self.lineEdit.setPlaceholderText('Filters')

        self.lineEdit.setMinimumSize(100, 20)
        self.lineEdit.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                    QtWidgets.QSizePolicy.Fixed)
        self.lineEdit.installEventFilter(self)
        self.buttonClear.hide()

        layout.addWidget(self.buttonClear)
        layout.addWidget(self.lineEdit)

        self.buttonClear.clicked.connect(self.clearFilter)
예제 #33
0
    def updateItemContent(self, item, node, **option):
        if node == self.getRootNode(): return

        item.setText(0, node['name'])
        item.setText(1, node['type'])

        if node['type'] == 'stretchpatch':
            item.setIcon(0, getIcon('deck_patch'))
        elif node['type'] == 'tileset':
            item.setIcon(0, getIcon('deck_tileset'))
        elif node['type'] == 'quad_array':
            item.setIcon(0, getIcon('deck_quad_array'))
        elif node['type'] == 'polygon':
            item.setIcon(0, getIcon('deck_polygon'))
        else:
            item.setIcon(0, getIcon('deck_quad'))
예제 #34
0
파일: Introspector.py 프로젝트: pixpil/gii
 def setLocked(self, locked=True):
     self.locked = locked
     self.header.buttonLock.setIcon(getIcon(locked and 'lock' or 'unlock'))
     self.header.buttonLock.setChecked(self.locked)
     if not locked:
         parent = app.getModule('introspector')
         self.setTarget(parent.currentTarget)
예제 #35
0
    def requestSubWindow(self, id, **windowOption):
        title = windowOption.get('title', id)
        window = SubWindow(self)
        window.setWindowTitle(title)

        icon = windowOption.get('icon', None)
        if icon:
            window.setWindowIcon(getIcon(icon))

        window.windowMode = 'sub'
        window.titleBase = title

        minSize = windowOption.get('minSize', None)
        if minSize:
            window.setMinimumSize(*minSize)
        # else:
        # 	window.setMinimumSize(20,20)

        maxSize = windowOption.get('maxSize', None)
        if maxSize:
            window.setMaximumSize(*maxSize)

        size = windowOption.get('size', None)
        if size:
            window.resize(*size)

        if windowOption.get('tool', False):
            window.setWindowFlags(Qt.Tool)

        return window
예제 #36
0
파일: SceneView.py 프로젝트: pixpil/gii
    def __init__(self, *args):
        super(CursorInfoBox, self).__init__(*args)
        self.textZoom = QtWidgets.QDoubleSpinBox(self)
        self.textZoom.setDecimals(1)
        self.textZoom.setMaximum(10000)
        self.textZoom.setMinimum(0.001)
        self.textPos = QtWidgets.QLabel(self)
        self.textPos.setObjectName('TextPos')
        self.textZoom.setFixedWidth(60)
        self.textPos.setFixedWidth(120)
        self.buttonResetZoom = QtWidgets.QToolButton(self)
        self.buttonResetZoom.setFixedSize(20, 20)
        self.buttonResetZoom.setIcon(getIcon('reset'))
        self.buttonResetZoom.clicked.connect(self.resetZoom)
        layout = QtWidgets.QHBoxLayout(self)
        layout.addWidget(self.textZoom)
        layout.addWidget(self.buttonResetZoom)
        layout.addWidget(self.textPos)
        layout.setSpacing(0)
        layout.setContentsMargins(0, 0, 0, 0)
        self.textZoom.valueChanged.connect(self.onZoomChanged)
        self.setFixedHeight(24)
        self.parentView = None

        self.refreshTimer = QtCore.QTimer(self)
        self.refreshTimer.setTimerType(Qt.PreciseTimer)
        self.refreshTimer.setSingleShot(True)
        self.refreshTimer.timeout.connect(self.doRefresh)
        self.refreshTimer.setInterval(0.1)

        self.mousePos = (0, 0)
        self.cameraZoom = 1
예제 #37
0
 def updateItemContent(self, item, node, **option):
     if node == self.owner: return
     assetType = node.getType()
     item.setText(0, node.getName())
     iconName = app.getAssetLibrary().getAssetIcon(assetType)
     item.setIcon(0, getIcon(iconName, 'normal'))
     item.setText(1, assetType)
예제 #38
0
    def updateItemContent(self, item, node, **option):
        rawName = node.getName()
        dotIdx = rawName.find('.')
        if dotIdx > 0:
            name = rawName[0:dotIdx]
            ext = rawName[dotIdx:]
            item.setText(name + '\n' + ext)
        else:
            item.setText(rawName)
        thumbnailIcon = self.owner.getAssetThumbnailIcon(
            node, self.thumbnailIconSize)
        if not thumbnailIcon:
            thumbnailIcon = getIcon('thumbnail/%s' % node.getType(),
                                    'thumbnail/default')

        item.setIcon(thumbnailIcon)
        item.setSizeHint(QtCore.QSize(120, 130))
        # item.setTextAlignment( Qt.AlignLeft | Qt.AlignVCenter )
        item.setTextAlignment(Qt.AlignCenter | Qt.AlignVCenter)
        item.setToolTip(node.getPath())
        remoteNode = node.getRemoteFileNode()
        if remoteNode:
            item.setForeground(QColor('#4ee4ff'))
        else:
            if node.isParentRemoteFile():
                item.setForeground(QColor('#7990c4'))
            else:
                item.setForeground(QColor('#ccc'))
예제 #39
0
	def updateItemContent( self, item, node, **option ):
		if node == self.owner: return 
		assetType = node.getType()
		item.setText( 0, node.getName() )
		iconName = app.getAssetLibrary().getAssetIcon( assetType )
		item.setIcon(0, getIcon(iconName,'normal'))
		item.setText( 1, assetType )
예제 #40
0
 def updateItemContent(self, item, node, **option):
     if node == self: return
     vtype = node.vtype
     item.setText(0, node.name)
     item.setText(2, node.desc)
     if vtype == 'boolean':
         item.setIcon(0, getIcon('var_boolean'))
         item.setText(1, node.value and 'true' or 'false')
     elif vtype == 'number':
         item.setIcon(0, getIcon('var_number'))
         item.setText(1, '%.4f' % node.value)
     elif vtype == 'int':
         item.setIcon(0, getIcon('var_int'))
         item.setText(1, '%d' % node.value)
     elif vtype == 'string':
         item.setIcon(0, getIcon('var_string'))
         item.setText(1, node.value)
예제 #41
0
	def updateItemContent( self, item, node, **option ):
		if node == self: return
		vtype = node.vtype
		item.setText( 0, node.name )
		item.setText( 2, node.desc )
		if vtype == 'boolean':
			item.setIcon( 0, getIcon( 'var_boolean' ) )
			item.setText( 1, node.value and 'true' or 'false' )
		elif vtype == 'number':
			item.setIcon( 0, getIcon( 'var_number' ) )
			item.setText( 1, '%.4f' % node.value )
		elif vtype == 'int':
			item.setIcon( 0, getIcon( 'var_int' ) )
			item.setText( 1, '%d' % node.value )
		elif vtype == 'string':
			item.setIcon( 0, getIcon( 'var_string' ) )
			item.setText( 1, node.value )
예제 #42
0
파일: SceneTool.py 프로젝트: pixpil/gii
	def __init__( self, toolId, **options ):
		super( SceneToolButton, self ).__init__()
		self.toolId = toolId
		# self.setDown( True )
		iconPath = options.get( 'icon', 'tools/' + toolId )
		self.setIcon( getIcon( iconPath ) )
		_SceneToolButtons[ self ] = toolId
		self.setObjectName( 'SceneToolButton' )
예제 #43
0
	def updateItemContent( self, item, node, **option ):
		if node == self.getRootNode():
			return

		elif isMockInstance( node, 'QuestSession' ):
			item.setText( 0, node.name or '<NONAME>' )
			item.setIcon( 0, getIcon( 'folder' ) )
			
		elif isMockInstance( node, 'QuestSessionSchemeEntry' ):
			path = node.path
			name = os.path.basename( path )
			if name.endswith( '.quest.graphml' ):
				shortName = name[:-14]
			else:
				shortName, ext = os.path.splitext( name )
			item.setText( 0, shortName )
			item.setIcon( 0, getIcon( 'quest_scheme' ) )
예제 #44
0
파일: SceneTool.py 프로젝트: pixpil/gii
 def __init__(self, toolId, **options):
     super(SceneToolButton, self).__init__()
     self.toolId = toolId
     # self.setDown( True )
     iconPath = options.get('icon', 'tools/' + toolId)
     self.setIcon(getIcon(iconPath))
     _SceneToolButtons[self] = toolId
     self.setObjectName('SceneToolButton')
예제 #45
0
	def updateItemContent( self, item, node, **option ):
		if node == self.module: return

		if node == self.module.emitters:
			item.setText( 0, 'Emitters' )
			item.setIcon( 0, getIcon('folder') )
		elif node == self.module.states:
			item.setText( 0, 'States' )
			item.setIcon( 0, getIcon('folder') )
		elif node == self.module.editingConfig:
			item.setText( 0, 'Particle System' )
			item.setIcon( 0, getIcon('particle') )
		elif node.getClassName( node ) in [ 'ParticleEmitterConfig', 'ParticleStateConfig' ]:
			item.setText( 0, node.name )
			item.setIcon( 0, getIcon('obj') )
		else:
			item.setText( 0, '' )
			item.setIcon( 0, getIcon('obj') )
예제 #46
0
파일: Window.py 프로젝트: tommo/gii
	def show( self, *args ):
		tab = self.parentWindow.centerTabWidget
		idx = tab.indexOf( self )
		if idx < 0:
			idx = tab.addTab( self, self.windowTitle() )
			iconPath = self.getWindowOption( 'icon' )
			if iconPath:
				tab.tabBar().setTabIcon( idx, getIcon( iconPath ) )
		super( DocumentWindow, self ).show( *args )
		tab.setCurrentIndex( idx )
예제 #47
0
 def initEditor(self, container):
     self.button = ActionFieldButton(container)
     self.button.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                               QtWidgets.QSizePolicy.Expanding)
     self.button.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
     self.button.setText(self.label)
     icon = self.getOption('icon', 'play')
     self.button.setIcon(getIcon(icon))
     self.button.clicked.connect(self.doAction)
     return self.button
예제 #48
0
 def show(self, *args):
     tab = self.parentWindow.centerTabWidget
     idx = tab.indexOf(self)
     if idx < 0:
         idx = tab.addTab(self, self.windowTitle())
         iconPath = self.getWindowOption('icon')
         if iconPath:
             tab.tabBar().setTabIcon(idx, getIcon(iconPath))
     super(DocumentWindow, self).show(*args)
     tab.setCurrentIndex(idx)
예제 #49
0
 def updateItemContent(self, item, node, **option):
     if item == self.invisibleRootItem():
         return
     iconName = node.getIcon(node)
     richText = node.getRichText(node)
     # mark
     # item.setText( 0, node.getMarkText() )
     item.setIcon(0, getIcon(iconName or "sq_node_normal", "sq_node_normal"))
     # event
     item.setHtml(0, "<body>%s</body>" % richText)
예제 #50
0
 def updateItemContent(self, item, node, **option):
     if node == self.getRootNode(): return
     item.setIcon(0, getIcon('portal_graph'))
     path = node.path
     name = os.path.basename(path)
     if name.endswith('.portal.graphml'):
         shortName = name[:-15]
     else:
         shortName, ext = os.path.splitext(name)
     item.setText(0, shortName)
예제 #51
0
 def updateItemContent(self, item, node, **option):
     if item == self.invisibleRootItem(): return
     iconName = node.getIcon(node)
     richText = node.getRichText(node)
     #mark
     # item.setText( 0, node.getMarkText() )
     item.setIcon(0, getIcon(iconName or 'sq_node_normal',
                             'sq_node_normal'))
     #event
     item.setHtml(0, '<body>%s</body>' % richText)
예제 #52
0
	def initEditor( self, container ):
		self.button = ActionFieldButton( container )
		self.button.setSizePolicy(
			QtGui.QSizePolicy.Expanding,
			QtGui.QSizePolicy.Expanding
			)
		self.button.setToolButtonStyle( Qt.ToolButtonTextBesideIcon )
		self.button.setText( self.label )
		icon = self.getOption( 'icon', 'play' )
		self.button.setIcon( getIcon(icon) )
		self.button.clicked.connect( self.doAction )
		return self.button
예제 #53
0
	def __init__( self, *args, **kwargs ):
		super( ControlVariableEditorWidget, self ).__init__( *args, **kwargs )

		self.target = None

		layout = QtGui.QVBoxLayout( self )
		layout.setSpacing( 0 )
		layout.setMargin( 1 )
		self.tree = ControlVariableSetTreeWidget( self )
		self.tree.setSizePolicy(
				QtGui.QSizePolicy.Expanding,
				QtGui.QSizePolicy.Expanding
				)
		self.toolbar = QtGui.QToolBar( self )
		self.toolbar.setIconSize( QtCore.QSize( 16, 16 ) )
		self.actionAddI = self.toolbar.addAction( getIcon( 'var_int' ), 'Add Int' )
		self.actionAddB = self.toolbar.addAction( getIcon( 'var_boolean' ), 'Add Boolean' )
		self.actionAddN = self.toolbar.addAction( getIcon( 'var_number' ), 'Add Number' )
		self.actionAddS = self.toolbar.addAction( getIcon( 'var_string' ), 'Add String' )
		self.actionRemove = self.toolbar.addAction( getIcon( 'remove' ), 'Remove' )
		self.toolbar.addSeparator()
		self.actionRefresh = self.toolbar.addAction( getIcon( 'refresh' ), 'Refresh' )
		layout.addWidget( self.toolbar )
		layout.addWidget( self.tree )

		self.actionAddI    .triggered .connect( self.onActionAddI    )
		self.actionAddN    .triggered .connect( self.onActionAddN    )
		self.actionAddB    .triggered .connect( self.onActionAddB    )
		self.actionAddS    .triggered .connect( self.onActionAddS    )
		self.actionRemove  .triggered .connect( self.onActionRemove  )
		self.actionRefresh .triggered .connect( self.onActionRefresh )
예제 #54
0
파일: TileMapEditor.py 프로젝트: pixpil/gii
	def updateItemContent( self, item, node, **option ):
		if node == self: return
		item.setIcon( 0, getIcon( 'tilemap/layer' ) )
		item.setText( 0, node.name )

		item.setText( 1, '%d' % node.subdivision )

		if node.visible:
			item.setText( 2, 'Y' )
		else:
			item.setText( 2, '' )
		path = node.getTilesetPath( node ) or ''
		item.setText( 3, os.path.basename(path) )
예제 #55
0
	def __init__( self, *args, **kwargs ):
		super( AssetBrowserStatusBarTag, self ).__init__( *args, **kwargs )
		self.setObjectName( 'AssetBrowserStatusTagBar' )
		layout = QtGui.QHBoxLayout( self )
		layout.setSpacing( 2 )
		layout.setMargin( 0 )
		self.textTags = QtGui.QLabel( self )
		self.textTags.setSizePolicy( QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed )
		self.buttonEdit = QtGui.QToolButton( self )
		self.buttonEdit.setIconSize( QSize( 12,12 ) )
		self.buttonEdit.setIcon( getIcon( 'tag-2' ) )
		layout.addWidget( self.buttonEdit )
		layout.addWidget( self.textTags )
예제 #56
0
파일: AssetTreeView.py 프로젝트: pixpil/gii
	def updateItemContent( self, item, node, **option ):
		if option.get('basic', True):
			assetType = node.getType()
			item.setText( 0, node.getName() )
			item.setText( 1, '' )
			if assetType in [ 'file', 'folder' ] :
				item.setText( 2, '' )
			else:
				item.setText( 2, assetType )

			iconName = app.getAssetLibrary().getAssetIcon( assetType )
			item.setIcon(0, getIcon(iconName,'normal'))

		if option.get('deploy', True):
			dstate=node.getDeployState()
			if   dstate is None:
				item.setIcon(1, getIcon(None))
			elif dstate == False:
				item.setIcon(1, getIcon('deploy_no'))
			elif dstate == True:
				item.setIcon(1, getIcon('deploy_yes'))
			else: #'dep' or 'parent'
				item.setIcon(1, getIcon('deploy_dep'))
예제 #57
0
 def __init__(self, *args):
     super(LongTextFieldWidget, self).__init__(*args)
     self.layout = layout = QtGui.QHBoxLayout(self)
     layout.setSpacing(0)
     layout.setMargin(0)
     self.lineText = FieldEditorLineEdit(self)
     self.lineText.setMinimumSize(50, 16)
     self.lineText.setReadOnly(True)
     self.buttonEdit = LongTextFieldButton(self)
     self.buttonEdit.setSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
     layout.addWidget(self.lineText)
     layout.addWidget(self.buttonEdit)
     self.text = ""
     self.buttonEdit.setIcon(getIcon("pencil"))
예제 #58
0
파일: EntityEditor.py 프로젝트: pixpil/gii
	def onCustomTrackMenuRequested( self ):
		menu = QMenu("Animator Track Context")
		itemTitle = menu.addAction( 'Create Custom Animator Track' )
		itemTitle.setEnabled( False )
		menu.addSeparator()
		trackTypes = _MOCK.getCustomAnimatorTrackTypesForObject( self.getTarget() )
		if not trackTypes: return
		for id, clas in trackTypes.items():
			action = menu.addAction( id )
			def _makeTrackCreator( trackId ):
				return lambda x: self.addCustomAnimatorTrack( trackId )
			action.triggered.connect( _makeTrackCreator( id ) )
			action.setIcon( getIcon('object_track') )
		menu.exec_(QtGui.QCursor.pos())
예제 #59
0
파일: EntityEditor.py 프로젝트: pixpil/gii
	def onFieldContextMenuRequested( self, target, fieldId ):
		menu = QMenu( "Field Context" )
		itemTitle = menu.addAction( '[ %s ]' % fieldId )
		itemTitle.setEnabled( False )
		menu.addSeparator()

		animator = app.getModule( 'animator' )
		if animator:
			itemAddKey = menu.addAction( 'Add key' )
			itemAddKey.setIcon( getIcon('key') )
			itemAddKey.triggered.connect( self.onFieldAddKey )
			menu.addSeparator()

		# itemDefault = menu.addAction( 'Set Default' )
		# itemDefault.triggered.connect( self.onFieldResetDefault )

		if _MOCK.isProtoInstanceOverrided( target, fieldId ):
			menu.addSeparator()
			itemProtoReset = menu.addAction( 'Reset To Proto Value' )
			itemProtoReset.triggered.connect( self.onFieldResetProto )
			itemProtoReset.setIcon( getIcon('reset') )

		self.currentFieldContext = ( target, fieldId )
		menu.exec_(QtGui.QCursor.pos())
예제 #60
0
파일: ToolBar.py 프로젝트: tommo/gii
	def __init__( self, name, **option ):
		option = option or {}
		self.name     = name.lower()
		self.label    = option.get( 'label', name )	
		self.priority = option.get( 'priority', 0 )
		self.shortcut = option.get( 'shortcut', False )
		self.cmd      = option.get( 'command', None )
		self.cmdArgs  = option.get( 'command_args', None )
		self.groupId  = option.get( 'group', None )
		iconName      = option.get( 'icon', None )
		self.icon     = iconName and getIcon( iconName ) or None

		self.parent  = None
		self.owner   = None
		
		self.onClick = None
		self.signal  = None
		self.itemType = False

		widget   = option.get( 'widget', None )
		menuLink = option.get( 'menu_link')

		if widget:
			self.qtAction   = QtGui.QWidgetAction( None )
			self.qtAction.setDefaultWidget( widget )

		elif menuLink:
			m = MenuManager.get().find( menuLink )
			if m and hasattr( m, 'qtAction' ):
				self.qtAction = m.qtAction
			else:
				logging.error( 'not valid menu link:' + self.menuLink )
				self.qtAction = QtGui.QAction( self.label, None )					

		else:
			self.itemType = option.get( 'type', False )
			self.onClick  = option.get( 'on_click', None )
			self.signal   = None
			self.qtAction   = QtGui.QAction( 
				self.label, None,
				checkable = self.itemType == 'check',
				triggered = self.handleEvent,
				shortcut  = self.shortcut
				)

		if self.icon:
			self.qtAction.setIcon( self.icon )