Exemplo n.º 1
0
	def onTool( self, tool ):
		name = tool.name
		if name == 'change_context':
			target0 = self.targetAnimator
			target1 = self.findTargetAnimator()
			if ( not target0 ) and ( not target1 ):
				alertMessage( 'No Animator', 'No Animator found in selected entity scope', 'question' )
				
		elif name == 'save_data':
			self.saveAnimatorData()

		elif name == 'add_clip':
			if self.checkTargetAnimator():
				self.addClip()

		elif name == 'add_clip_group':
			if self.checkTargetAnimator():
				self.addClipGroup()

		elif name == 'remove_clip':
			if self.checkTargetAnimator():
				self.removeClipNode()			

		elif name == 'clone_clip':
			if self.checkTargetAnimator():
				self.cloneClipNode()			

		elif name == 'add_track_group':
			group = self.delegate.callMethod( 'view', 'addTrackGroup' )
			if group:
				self.widget.addTrack( group, True )

		elif name == 'remove_track':
			for track in self.widget.treeTracks.getSelection():
				self.delegate.callMethod( 'view', 'removeTrack', track )
				self.widget.removeTrack( track )
		elif name == 'locate_target':
			for track in self.widget.treeTracks.getSelection():
				sceneGraphEditor = self.getModule( 'scenegraph_editor')
				if sceneGraphEditor:
					targetEntity = self.delegate.callMethod( 'view', 'findTrackEntity', track )
					if targetEntity:
						sceneGraphEditor.selectEntity( targetEntity, focus_tree = True )
				#pass
				return

		#preview
		elif name == 'goto_start':
			self.gotoStart()
		elif name == 'goto_end':
			self.gotoEnd()
		elif name == 'play':
			if tool.getValue():
				self.startPreview()
			else:
				self.stopPreview( False )
		elif name == 'stop':
			self.stopPreview( True )
		elif name == 'toggle_repeat':
			self.delegate.callMethod( 'view', 'togglePreviewRepeat', tool.getValue() )
Exemplo n.º 2
0
	def createAsset( self, creator, instance = None ):
		if isinstance( creator, str ):
			creator = self.getAssetLibrary().getAssetCreator( creator )

		label       = creator.getLabel()
		assetType   = creator.getAssetType()		

		instance = instance or self.browserInstance
		if instance.currentFolders:
			contextNode = instance.currentFolders[0]
		else:
			contextNode = None

		if not isinstance( contextNode, AssetNode ):
			contextNode = app.getAssetLibrary().getRootNode()

		name = requestString('Create Asset <%s>' % assetType, 'Enter asset name: <%s>' % assetType )
		if not name: return

		try:
			finalPath = creator.createAsset( name, contextNode, assetType )
			self.newCreateNodePath=finalPath
		except Exception,e:
			logging.exception( e )
			alertMessage( 'Asset Creation Error', repr(e) )
Exemplo n.º 3
0
    def openScene(self, node, protoNode=None):
        if self.activeSceneNode == node:
            if self.getModule('scene_view'):
                self.getModule('scene_view').setFocus()

            if protoNode:
                self.delegate.safeCallMethod('editor', 'locateProto',
                                             protoNode.getPath())
                if self.getModule('scene_view'):
                    self.getModule('scene_view').focusSelection()

        else:
            if not self.closeScene(): return
            if self.getModule('scene_view'):
                self.getModule('scene_view').makeCanvasCurrent()
            self.activeSceneNode = node
            signals.emitNow('scene.pre_open', node)
            scene = self.delegate.safeCallMethod('editor', 'openScene',
                                                 node.getPath())
            if not scene:
                #todo: raise something
                alertMessage(
                    'error',
                    '%s\n\nfailed to open scene, see console for detailed information.'
                    % node.getPath())
                return False
            signals.emitNow('scene.open', self.activeSceneNode, scene)
            self.setFocus()
            self.editingProtoNode = protoNode
            self.loadWorkspaceState(False)
            self.delegate.safeCallMethod('editor', 'postOpenScene')
Exemplo n.º 4
0
    def createAsset(self, creator, instance=None):
        if isinstance(creator, str):
            creator = self.getAssetLibrary().getAssetCreator(creator)

        label = creator.getLabel()
        assetType = creator.getAssetType()

        instance = instance or self.browserInstance
        if instance.currentFolders:
            contextNode = instance.currentFolders[0]
        else:
            contextNode = None

        if not isinstance(contextNode, AssetNode):
            contextNode = app.getAssetLibrary().getRootNode()

        name = requestString('Create Asset <%s>' % assetType,
                             'Enter asset name: <%s>' % assetType)
        if not name: return

        try:
            finalPath = creator.createAsset(name, contextNode, assetType)
            self.newCreateNodePath = finalPath
        except Exception, e:
            logging.exception(e)
            alertMessage('Asset Creation Error', repr(e))
Exemplo n.º 5
0
	def openScene( self, node, protoNode = None ):
		if self.activeSceneNode == node:			
			if self.getModule('scene_view'):
				self.getModule('scene_view').setFocus()

			if protoNode:
				self.delegate.safeCallMethod( 'editor', 'locateProto', protoNode.getPath() )
				if self.getModule('scene_view'):
					self.getModule('scene_view').focusSelection()
				
		else:
			if not self.closeScene(): return
			if self.getModule('scene_view'):
				self.getModule('scene_view').makeCanvasCurrent()
			self.activeSceneNode = node
			signals.emitNow( 'scene.pre_open', node )
			scene = self.delegate.safeCallMethod( 'editor', 'openScene', node.getPath() )
			if not scene:
				#todo: raise something
				alertMessage( 'error', 
					'%s\n\nfailed to open scene, see console for detailed information.' % node.getPath() )
				return False
			signals.emitNow( 'scene.open', self.activeSceneNode, scene )
			self.setFocus()
			self.editingProtoNode = protoNode		
			self.loadWorkspaceState( False )
			self.delegate.safeCallMethod( 'editor', 'postOpenScene' )
Exemplo n.º 6
0
 def confirmStop(self):
     if self.running:
         alertMessage('Preview is running',
                      'Stop game preview before close Gii')
         return False
     else:
         return True
Exemplo n.º 7
0
    def runGameExternal(self):
        if self.running:
            alertMessage('running', 'Stop preview before running externally')
            return False

        scnEditor = self.getModule('scenegraph_editor')
        if scnEditor and scnEditor.activeSceneNode:
            scnEditor.saveScene()
        ExternRun.runGame(parent_window=self.getMainWindow())
Exemplo n.º 8
0
 def syncSelection(self):
     sceneGraphEditor = app.getModule('scenegraph_editor')
     if sceneGraphEditor:
         entries = self.enumerateSearch()
         objects = [entry.getObject() for entry in entries]
         for entity in sceneGraphEditor.getSelection():
             for obj in objects:
                 if obj == entity or obj['_entity'] == entity:
                     self.setValue(obj)
                     return
     alertMessage('No matched object',
                  'No matched entity/component selected')
Exemplo n.º 9
0
 def addPackItem(self, assetPath):
     entry = self.currentPackEntry
     if not entry:
         alertMessage('No locale pack', 'No Locale Pack selected.')
         return
     pack = entry.getPack(entry)
     if pack:
         if not pack.getAssetItem(pack, assetPath):
             item = pack.addAssetItem(pack, assetPath)
             self.savePackConfig()
             return item
     return None
Exemplo n.º 10
0
	def syncSelection( self ):
		assetBrowser = app.getModule( 'asset_browser' )
		if assetBrowser:
			entries = self.enumerateSearch( include_deprecated = True )
			objects = [ entry.getObject() for entry in entries ]
			for node in assetBrowser.getItemSelection():
				if node in objects:
					if node.isDeprecated():
						if not requestConfirm( 'Deprecated Asset', 'applying DEPRECATED asset, confirm?', 'warning' ):
							return False
					return self.setValue( node )
		alertMessage( 'No matched asset', 'No matched asset selected' )
Exemplo n.º 11
0
	def editAsset(self, node):
		if node.isType( 'particle_simple' ):
			editor = app.getModule( 'simple_particle_editor' )
			if not editor: 
				return alertMessage( 'Editor not load', 'Simple Particle Editor not found!' )
			editor.openAsset( node )

		elif node.isType( 'particle_system' ):
			editor = app.getModule( 'particle_editor' )
			if not editor: 
				return alertMessage( 'Editor not load', 'Particle Editor not found!' )
			editor.openAsset( node )
Exemplo n.º 12
0
 def onButtonOpen(self):
     options = QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ShowDirsOnly
     directory = QtGui.QFileDialog.getExistingDirectory(
         self, "Select Project Folder To Open", "", options)
     if directory:
         info = Project.findProject(directory)
         if info:
             _task['task'] = 'open'
             _task['path'] = info['path']
             self.close()
         else:
             alertMessage('Project not found',
                          'No valid Gii project found.')
Exemplo n.º 13
0
 def onDropEvent(self, targetNode, pos, event):
     mimeData = event.mimeData()
     if mimeData.hasFormat(GII_MIME_ASSET_LIST):
         raw = str(mimeData.data(GII_MIME_ASSET_LIST), 'utf-8')
         assetList = json.loads(raw)
         if not self.module.currentPackEntry:
             alertMessage('No locale pack', 'No Locale Pack selected.')
         else:
             assetLib = AssetLibrary.get()
             for path in assetList:
                 packItem = self.module.addPackItem(path)
                 if packItem:
                     self.addNode(packItem)
         event.accept()
Exemplo n.º 14
0
    def onTool(self, tool):
        name = tool.name
        if name == "change_context":
            target0 = self.targetAnimator
            target1 = self.findTargetAnimator()
            if (not target0) and (not target1):
                alertMessage("No Animator", "No Animator found in selected entity scope", "question")

        elif name == "save_data":
            self.saveAnimatorData()

        elif name == "add_clip":
            if self.checkTargetAnimator():
                self.addClip()

        elif name == "add_clip_group":
            if self.checkTargetAnimator():
                self.addClipGroup()

        elif name == "remove_clip":
            if self.checkTargetAnimator():
                self.removeClipNode()

        elif name == "clone_clip":
            if self.checkTargetAnimator():
                self.cloneClipNode()

        elif name == "add_track_group":
            group = self.delegate.callMethod("view", "addTrackGroup")
            if group:
                self.widget.addTrack(group, True)

        elif name == "remove_track":
            for track in self.widget.treeTracks.getSelection():
                self.delegate.callMethod("view", "removeTrack", track)
                self.widget.removeTrack(track)
                # preview
        elif name == "goto_start":
            self.gotoStart()
        elif name == "goto_end":
            self.gotoEnd()
        elif name == "play":
            if tool.getValue():
                self.startPreview()
            else:
                self.stopPreview(False)
        elif name == "stop":
            self.stopPreview(True)
        elif name == "toggle_repeat":
            self.delegate.callMethod("view", "togglePreviewRepeat", tool.getValue())
Exemplo n.º 15
0
    def editAsset(self, node):
        if node.isType('particle_simple'):
            editor = app.getModule('simple_particle_editor')
            if not editor:
                return alertMessage('Editor not load',
                                    'Simple Particle Editor not found!')
            editor.openAsset(node)

        elif node.isType('particle_system'):
            editor = app.getModule('particle_editor')
            if not editor:
                return alertMessage('Editor not load',
                                    'Particle Editor not found!')
            editor.openAsset(node)
Exemplo n.º 16
0
Arquivo: stub.py Projeto: pixpil/gii
	def onButtonOpen( self ):
		options   = QtGui.QFileDialog.DontResolveSymlinks | QtGui.QFileDialog.ShowDirsOnly
		directory = QtGui.QFileDialog.getExistingDirectory(self,
			"Select Project Folder To Open",
			"",
			options
			)		
		if directory:
			info = Project.findProject( directory )
			if info:
				_task[ 'task' ] = 'open'
				_task[ 'path' ] = info['path']
				self.close()
			else:
				alertMessage( 'Project not found','No valid Gii project found.' )				
Exemplo n.º 17
0
Arquivo: stub.py Projeto: pixpil/gii
	def onButtonOpen( self ):
		options   = QtWidgets.QFileDialog.DontResolveSymlinks | QtWidgets.QFileDialog.ShowDirsOnly
		path      = QtWidgets.QFileDialog.getExistingDirectory(self,
			"Select Project Folder To Open",
			"",
			options
			)		
		if path:
			projectPath, info = Project.findProject( path )
			if projectPath:
				_task[ 'task' ] = 'open'
				_task[ 'path' ] = projectPath
				self.close()
			else:
				alertMessage( 'Project not found','No valid Gii project found.' )				
Exemplo n.º 18
0
    def locatePortalGroup(self, groupName):
        registry = _MOCK.getScenePortalRegistry()
        scenePath = registry.getPortalGroupDefaultScene(registry, groupName)
        if not scenePath:
            alertMessage('No scene for portal group',
                         'No default scene found for group:' + groupName)
            return False

        node = self.getAssetLibrary().getAssetNode(scenePath)
        if not node:
            alertMessage('No scene found',
                         'Target scene not found:' + scenePath)
            return False

        node.edit()
Exemplo n.º 19
0
	def createPrefab( self, targetPrefab ):
		selection = self.getSelection()
		if not selection: return
		if len( selection ) > 1:
			return alertMessage( 'multiple entities cannot be converted into prefab' )
		target = selection[0]
		self.doCommand( 'scene_editor/create_prefab', 
			entity = target, 
			prefab = targetPrefab.getNodePath(),
			file   = targetPrefab.getAbsFilePath()
		)
Exemplo n.º 20
0
 def createPrefab(self, targetPrefab):
     selection = self.getSelection()
     if not selection: return
     if len(selection) > 1:
         return alertMessage(
             'multiple entities cannot be converted into prefab')
     target = selection[0]
     self.doCommand('scene_editor/create_prefab',
                    entity=target,
                    prefab=targetPrefab.getNodePath(),
                    file=targetPrefab.getAbsFilePath())
Exemplo n.º 21
0
 def makeProto(self):
     selection = self.getSelection()
     if not selection: return
     if len(selection) > 1:
         return alertMessage(
             'multiple entities cannot be converted into Proto')
     target = selection[0]
     if not target: return
     if requestConfirm('convert proto', 'Convert this Entity into Proto?'):
         self.doCommand('scene_editor/make_proto', entity=target)
         self.tree.refreshNodeContent(target)
Exemplo n.º 22
0
	def makeProto( self ):
		selection = self.getSelection()
		if not selection: return
		if len( selection ) > 1:
			return alertMessage( 'multiple entities cannot be converted into Proto' )
		target = selection[0]
		if not target: return
		if requestConfirm( 'convert proto', 'Convert this Entity into Proto?' ):
			self.doCommand( 'scene_editor/make_proto', 
				entity = target
			)
			self.tree.refreshNodeContent( target )
Exemplo n.º 23
0
    def onTool(self, tool):
        name = tool.name
        if name == 'locate':
            if self.treeItems.getSelection():
                for item in self.treeItems.getSelection():
                    path = item.path
                    app.getModule('asset_browser').locateAsset(path, goto=True)
                    break
            else:
                packEntry = self.currentPackEntry
                if packEntry:
                    app.getModule('asset_browser').locateAsset(packEntry.path,
                                                               goto=True)

        elif name == 'refresh':
            self.scanPacks()
            self.treePacks.rebuild()

        elif name == 'build_source':
            entry = self.currentPackEntry
            if not entry:
                alertMessage('No locale pack', 'No Locale Pack selected.')
                return
            self.buildSource(entry.path)

        elif name == 'sync_external':
            entry = self.currentPackEntry
            if not entry:
                alertMessage('No locale pack', 'No Locale Pack selected.')
                return
            self.syncExternal(entry.path)

        elif name == 'update_remote':
            entry = self.currentPackEntry
            if not entry:
                alertMessage('No locale pack', 'No Locale Pack selected.')
                return
            self.updateRemote(entry.path)
Exemplo n.º 24
0
Arquivo: stub.py Projeto: pixpil/gii
	def onButtonNew( self ):
		alertMessage ( 'Not implemented','Not implemented yet, use CLI instead.')
Exemplo n.º 25
0
 def checkTargetAnimator(self):
     if not self.targetAnimator:
         alertMessage("No Animator", "No Animator Selected", "question")
         return False
     return True
Exemplo n.º 26
0
    def onMenu(self, menu):
        name = menu.name
        if name == 'close_scene':
            if self.previewing:
                alertMessage('Warning', 'Stop previewing before closing scene')
                return
            self.closeScene()

        elif name == 'open_scene':
            if self.previewing:
                alertMessage('Warning', 'Stop previewing before opening scene')
                return
            requestSearchView(info='select scene to open',
                              context='asset',
                              type='scene',
                              on_selection=self.openScene)

        elif name == 'save_scene':
            if self.previewing:
                alertMessage('Warning', 'Stop previewing before saving')
                return
            self.saveScene()

        elif name == 'locate_scene_asset':
            if self.activeSceneNode:
                assetBrowser = self.getModule('asset_browser')
                if assetBrowser:
                    assetBrowser.selectAsset(self.activeSceneNode)

        elif name == 'add_entity':
            requestSearchView(info='select entity type to create',
                              context='entity_creation',
                              on_selection=lambda obj: self.doCommand(
                                  'scene_editor/create_entity', name=obj))

        elif name == 'add_component':
            requestSearchView(info='select component type to create',
                              context='component_creation',
                              on_selection=lambda obj: self.doCommand(
                                  'scene_editor/create_component', name=obj))

        elif name == 'add_empty_entity':
            self.doCommand('scene_editor/create_entity', name='Entity')

        elif name == 'load_prefab':
            requestSearchView(info='select a perfab node to instantiate',
                              context='asset',
                              type='prefab',
                              on_selection=lambda obj: self.doCommand(
                                  'scene_editor/create_prefab_entity',
                                  prefab=obj.getNodePath()))

        elif name == 'load_prefab_in_container':
            requestSearchView(
                info='select a perfab node to instantiate( PefabContainer )',
                context='asset',
                type='prefab',
                on_selection=lambda obj: self.doCommand(
                    'scene_editor/create_prefab_container',
                    prefab=obj.getNodePath()))

        elif name == 'remove_entity':
            self.doCommand('scene_editor/remove_entity')

        elif name == 'clone_entity':
            self.doCommand('scene_editor/clone_entity')

        elif name == 'find_entity':
            requestSearchView(
                info='search for entity in current scene',
                context='scene',
                type='entity',
                on_selection=lambda x: self.selectEntity(x, focus_tree=True),
                on_test=self.selectEntity)

        elif name == 'find_entity_in_group':
            requestSearchView(
                info='search for entity in current entity group',
                context='scene',
                type='entity_in_group',
                on_selection=lambda x: self.selectEntity(x, focus_tree=True),
                on_test=self.selectEntity)

        elif name == 'find_entity_group':
            requestSearchView(
                info='search for group in current scene',
                context='scene',
                type='group',
                on_selection=lambda x: self.selectEntity(x, focus_tree=True),
                on_test=self.selectEntity)

        elif name == 'create_group':
            self.doCommand('scene_editor/entity_group_create')

        elif name == 'remove_component':
            context = menu.getContext()
            if context:
                self.doCommand('scene_editor/remove_component', target=context)

        elif name == 'copy_component':
            context = menu.getContext()
            if context:
                self.doCommand('scene_editor/copy_component', target=context)

        elif name == 'edit_component_alias':
            context = menu.getContext()
            if context:
                oldAlias = context._alias or ''
                alias = requestString('Edit Alias', 'Enter Alias:', oldAlias)
                if alias != None:
                    if not alias: alias = False
                    self.doCommand('scene_editor/rename_component',
                                   target=context,
                                   alias=alias)

        elif name == 'assign_layer':
            if not self.tree.getSelection(): return
            requestSearchView(info='select layer to assign',
                              context='scene_layer',
                              type=_MOCK.Entity,
                              on_selection=self.assignEntityLayer)

        elif name == 'toggle_visibility':
            self.doCommand('scene_editor/toggle_entity_visibility')

        elif name == 'freeze_entity_pivot':
            self.doCommand('scene_editor/freeze_entity_pivot')
Exemplo n.º 27
0
 def editAsset(self, node):
     editor = app.getModule('mock.stylesheet_editor')
     if not editor:
         return alertMessage('Editor not load', 'Style Editor not found!')
     editor.setFocus()
     editor.openAsset(node)
Exemplo n.º 28
0
	def onMenu( self, menu ):
		name = menu.name
		if name == 'close_scene':
			if self.previewing:
				alertMessage( 'Warning', 'Stop previewing before closing scene' )
				return
			self.closeScene()

		elif name == 'open_scene':
			if self.previewing:
				alertMessage( 'Warning', 'Stop previewing before opening scene' )
				return
			requestSearchView( 
				info    = 'select scene to open',
				context = 'asset',
				type    = 'scene',
				on_selection = self.openScene
				)
			
		elif name == 'save_scene':
			if self.previewing:
				alertMessage( 'Warning', 'Stop previewing before saving' )
				return
			self.saveScene()

		elif name == 'locate_scene_asset':
			if self.activeSceneNode:
				assetBrowser = self.getModule( 'asset_browser' )
				if assetBrowser:
					assetBrowser.selectAsset( self.activeSceneNode )

		elif name == 'add_entity':
			requestSearchView( 
				info    = 'select entity type to create',
				context = 'entity_creation',
				on_selection = lambda obj: 
					self.doCommand( 'scene_editor/create_entity', name = obj )
				)

		elif name == 'add_component':
			requestSearchView( 
				info    = 'select component type to create',
				context = 'component_creation',
				on_selection = lambda obj: 
					self.doCommand( 'scene_editor/create_component', name = obj )
				)

		elif name == 'add_empty_entity':
			self.doCommand( 'scene_editor/create_entity', name = 'Entity' )

		elif name == 'load_prefab':
			requestSearchView( 
				info    = 'select a perfab node to instantiate',
				context = 'asset',
				type    = 'prefab',
				on_selection = 
					lambda obj: 
						self.doCommand( 'scene_editor/create_prefab_entity', prefab = obj.getNodePath() )
				)

		elif name == 'load_prefab_in_container':
			requestSearchView( 
				info    = 'select a perfab node to instantiate( PefabContainer )',
				context = 'asset',
				type    = 'prefab',
				on_selection = 
					lambda obj: 
						self.doCommand( 'scene_editor/create_prefab_container', prefab = obj.getNodePath() )
				)

		elif name == 'remove_entity':
			self.doCommand( 'scene_editor/remove_entity' )

		elif name == 'clone_entity':
			self.doCommand( 'scene_editor/clone_entity' )

		elif name == 'find_entity':
			requestSearchView( 
				info    = 'search for entity in current scene',
				context = 'scene',
				type    = 'entity',
				on_selection = lambda x: self.selectEntity( x, focus_tree = True ) ,
				on_test      = self.selectEntity
				)

		elif name == 'find_entity_in_group':
			requestSearchView( 
				info    = 'search for entity in current entity group',
				context = 'scene',
				type    = 'entity_in_group',
				on_selection = lambda x: self.selectEntity( x, focus_tree = True ) ,
				on_test      = self.selectEntity
				)

		elif name == 'find_entity_group':
			requestSearchView( 
				info    = 'search for group in current scene',
				context = 'scene',
				type    = 'group',
				on_selection = lambda x: self.selectEntity( x, focus_tree = True ) ,
				on_test      = self.selectEntity
				)

		elif name == 'create_group':
			self.doCommand( 'scene_editor/entity_group_create' )

		elif name == 'remove_component':
			context = menu.getContext()
			if context:
				self.doCommand( 'scene_editor/remove_component', target = context )

		elif name == 'copy_component':
			context = menu.getContext()
			if context:
				self.doCommand( 'scene_editor/copy_component', target = context )

		elif name == 'assign_layer':
			if not self.tree.getSelection(): return
			requestSearchView( 
				info    = 'select layer to assign',
				context = 'scene_layer',
				type    = _MOCK.Entity,
				on_selection = self.assignEntityLayer
				)

		elif name == 'toggle_visibility':
			self.doCommand( 'scene_editor/toggle_entity_visibility' )

		elif name == 'freeze_entity_pivot':
			self.doCommand( 'scene_editor/freeze_entity_pivot' )
Exemplo n.º 29
0
	def onMenu(self, menuNode):
		name = menuNode.name

		if name in ('deploy_set', 'deploy_disallow', 'deploy_unset'):
			if name   == 'deploy_set':      newstate = True
			elif name == 'deploy_disallow': newstate = False
			elif name == 'deploy_unset':    newstate = None
			s = self.currentContextInstance.getItemSelection()
			for n in s:
				if isinstance(n,AssetNode):
					n.setDeployState(newstate)

		elif name == 'check_asset_remote':
			self.checkRemoteFile( self.currentContextInstance )

		elif name == 'refresh_remote':
			app.getAssetLibrary().scanRemoteFiles()
			alertMessage( 'OK', 'Remote files refreshed', 'info' )
					
		elif name == 'reimport':
			if self.currentContextSource == 'tree':
				targetNode = self.currentContextTargetNode
				if targetNode:
					targets = [ targetNode ]
				else:
					targets = []
			else:
				targets = self.currentContextInstance.getItemSelection()
			for targetNode in targets:
				if isinstance( targetNode, AssetNode ):
					targetNode.markModified()
			app.getAssetLibrary().importModifiedAssets()

		elif name == 'clone':
			pass

		elif name == 'remove':
			pass

		elif name == 'show_in_browser':
			n = self.currentContextTargetNode
			if isinstance( n, AssetNode ):
				n.showInBrowser()

		elif name == 'show_meta_data':
			n = self.currentContextTargetNode
			if isinstance( n, AssetNode ):
				path = n.getMetaDataFilePath()
				if path and os.path.exists( path ):
					AssetUtils.showFileInBrowser(path)
				else:
					if requestConfirm( 'No Metadata', 'Create an empty file?' ):
						if not n.metadata:
							n.setMetaData( 'key', 'value' )
						n.metaDataDirty = True
						n.saveMetaDataTable()
						AssetUtils.showFileInBrowser(path)

		elif name == 'open_in_system':
			for n in self.currentContextInstance.getItemSelection():
				if isinstance( n, AssetNode ):
					n.openInSystem()
					break

		elif name == 'copy_node_path':
			text = ''
			for n in self.currentContextInstance.getItemSelection():
				if text: text += '\n'
				text += n.getNodePath()
			setClipboardText( text )

		elif name == 'refresh_thumbnail':
			text = ''
			for n in self.currentContextInstance.getItemSelection():
				n.clearThumbnails()
				for instance in self.instances.values():
					view = instance.getCurrentView()
					view.refreshNodeContent( n )

		elif name == 'create_asset':
			requestSearchView( 
				info    = 'select asset type to create',
				context = 'asset_creator',
				type    = 'scene',
				on_selection = self.createAsset
			)

		elif name == 'create_folder':
			self.createAsset( 'folder' )

		elif name == 'find_asset':
			requestSearchView( 
				info    = 'search for asset',
				context = 'asset',
				on_test      = self.selectAsset,
				on_selection = self.selectAsset
				)

		elif name == 'find_asset_folder':
			requestSearchView( 
				info    = 'search for asset',
				context = 'asset_folder',
				on_test      = self.selectAsset,
				on_selection = self.selectAsset
				)

		elif name == 'open_asset':
			requestSearchView( 
				info    = 'open asset',
				context = 'asset',
				on_test      = self.selectAsset,
				on_selection = self.openAsset
				)

		elif name == 'new_asset_search':
			self.createAssetSearch()
Exemplo n.º 30
0
 def editAsset(self, node):
     editor = app.getModule('sq_script_editor')
     if not editor:
         return alertMessage('Editor not load', 'Asset Editor not found!')
     else:
         editor.openAsset(node)
Exemplo n.º 31
0
	def editAsset(self, node):
		editor = app.getModule( 'effect_editor' )
		if not editor: 
			return alertMessage( 'Editor not load', 'Effect Editor not found!' )
		editor.openAsset( node )		
Exemplo n.º 32
0
 def editAsset(self, node):
     editor = app.getModule('effect_editor')
     if not editor:
         return alertMessage('Editor not load', 'Effect Editor not found!')
     editor.openAsset(node)
Exemplo n.º 33
0
 def _locateConnectedPortal(id):
     if not self.locateConnectedPortal(id):
         alertMessage('No connection', 'No connected portal found')
Exemplo n.º 34
0
	def checkTargetAnimator( self ):
		if not self.targetAnimator:
			alertMessage( 'No Animator', 'No Animator Selected', 'question' )
			return False
		return True
Exemplo n.º 35
0
    def onTool(self, tool):
        name = tool.name
        if name == 'find_animator':
            requestSearchView(context='scene',
                              type=_MOCK.Animator,
                              on_selection=self.selectAnimatorEntity)

        elif name == 'change_animator':
            target0 = self.targetAnimator
            target1 = self.findTargetAnimator()
            if (not target0) and (not target1):
                alertMessage('No Animator',
                             'No Animator found in selected entity scope',
                             'question')

        elif name == 'save_data':
            self.saveAnimatorData()

        elif name == 'extra':
            self.openTargetContextMenu()

        elif name == 'add_clip':
            if self.checkTargetAnimator():
                self.addClip()

        elif name == 'add_clip_tree':
            if self.checkTargetAnimator():
                self.addClipTree()

        elif name == 'add_clip_group':
            if self.checkTargetAnimator():
                self.addClipGroup()

        elif name == 'remove_clip':
            if self.checkTargetAnimator():
                self.removeClipNode()

        elif name == 'clone_clip':
            if self.checkTargetAnimator():
                self.cloneClipNode()

        elif name == 'add_track_group':
            group = self.delegate.callMethod('view', 'addTrackGroup')
            if group:
                self.widget.addTrack(group, True)

        elif name == 'remove_track':
            for track in self.widget.treeTracks.getSelection():
                self.delegate.callMethod('view', 'removeTrack', track)
                self.widget.removeTrack(track)
            self.refreshPreview()

        elif name == 'fold_tracks':
            self.widget.treeTracks.foldAllItems()

        elif name == 'unfold_tracks':
            self.widget.treeTracks.expandAllItems()

        elif name == 'locate_target':
            for track in self.widget.treeTracks.getSelection():
                sceneGraphEditor = self.getModule('scenegraph_editor')
                if sceneGraphEditor:
                    targetEntity = self.delegate.callMethod(
                        'view', 'findTrackEntity', track)
                    if targetEntity:
                        sceneGraphEditor.selectEntity(targetEntity,
                                                      focus_tree=True)
                #pass
                return

        elif name == 'retarget':
            requestSearchView(
                info='retarget animator track to...',
                context='scene',
                type='entity',
                multiple_selection=False,
                on_selection=self.retargetTrack,
            )

        elif name == 'add_clip_tree_node':
            requestSearchView(info='adding AnimatorClipTree node...',
                              context='clip_tree_node',
                              type=None,
                              multiple_selection=False,
                              on_selection=self.createClipTreeNode,
                              on_search=self.listClipTreeNodeTypes)

        elif name == 'remove_clip_tree_node':
            for node in self.widget.treeClipTree.getSelection():
                if node.isVirtual(node): continue
                self.doCommand('scene_editor/animator_remove_clip_tree_node',
                               target_node=node)
            self.widget.rebuildClipTree()
            self.refreshPreview()

        #preview
        elif name == 'goto_start':
            self.gotoStart()
        elif name == 'goto_end':
            self.gotoEnd()
        elif name == 'play':
            if tool.getValue():
                self.startPreview()
            else:
                self.stopPreview(False)
        elif name == 'stop':
            self.stopPreview(True)
        elif name == 'play_tree':
            if tool.getValue():
                self.startPreview()
            else:
                self.stopPreview(False)
        elif name == 'stop_tree':
            self.stopPreview(True)
        elif name == 'toggle_repeat':
            self.delegate.callMethod('view', 'togglePreviewRepeat',
                                     tool.getValue())
Exemplo n.º 36
0
	def editAsset(self, node):	
		editor = app.getModule( 'sq_script_editor' )
		if not editor: 
			return alertMessage( 'Editor not load', 'Asset Editor not found!' )
		else:
			editor.openAsset( node )
Exemplo n.º 37
0
	def editAsset(self, node):	
		editor = app.getModule('mock.stylesheet_editor')
		if not editor: 
			return alertMessage( 'Editor not load', 'Style Editor not found!' )
		editor.setFocus()
		editor.openAsset( node )
Exemplo n.º 38
0
 def onButtonNew(self):
     alertMessage('Not implemented',
                  'Not implemented yet, use CLI instead.')