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() )
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) )
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')
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))
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' )
def confirmStop(self): if self.running: alertMessage('Preview is running', 'Stop game preview before close Gii') return False else: return True
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())
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')
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
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' )
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 )
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.')
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()
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())
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)
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.' )
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.' )
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()
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() )
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())
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)
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 )
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)
def onButtonNew( self ): alertMessage ( 'Not implemented','Not implemented yet, use CLI instead.')
def checkTargetAnimator(self): if not self.targetAnimator: alertMessage("No Animator", "No Animator Selected", "question") return False return True
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')
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)
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' )
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()
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)
def editAsset(self, node): editor = app.getModule( 'effect_editor' ) if not editor: return alertMessage( 'Editor not load', 'Effect Editor not found!' ) editor.openAsset( node )
def editAsset(self, node): editor = app.getModule('effect_editor') if not editor: return alertMessage('Editor not load', 'Effect Editor not found!') editor.openAsset(node)
def _locateConnectedPortal(id): if not self.locateConnectedPortal(id): alertMessage('No connection', 'No connected portal found')
def checkTargetAnimator( self ): if not self.targetAnimator: alertMessage( 'No Animator', 'No Animator Selected', 'question' ) return False return True
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())
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 )
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 )
def onButtonNew(self): alertMessage('Not implemented', 'Not implemented yet, use CLI instead.')