Esempio n. 1
0
    def run(self, **kwargs):
        if not self.initialized:
            if not self.init(**kwargs):
                return False
        hasError = False
        self.resetMainLoopBudget()

        try:
            signals.emitNow('app.pre_start')

            EditorModuleManager.get().startAllModules()
            self.getProject().getAssetLibrary().scanProject()

            signals.emitNow('app.start')
            signals.dispatchAll()

            self.saveConfig()

            EditorModuleManager.get().tellAllModulesAppReady()
            signals.emit('app.ready')

            #main loop
            while self.running:
                self.doMainLoop()

        except Exception, e:
            #TODO: popup a alert window?
            logging.exception(e)
            hasError = True
Esempio n. 2
0
	def run( self, **kwargs ):
		if not self.initialized: 
			if not self.init( **kwargs ):
				return False
		hasError = False
		self.resetMainLoopBudget()
		
		try:
			signals.emitNow('app.pre_start')

			EditorModuleManager.get().startAllModules()
			self.getProject().getAssetLibrary().scanProject()

			signals.emitNow('app.start')
			signals.dispatchAll()

			self.saveConfig()

			EditorModuleManager.get().tellAllModulesAppReady()
			signals.emit('app.ready')

			#main loop
			while self.running:
				self.doMainLoop()

		except Exception, e:
			#TODO: popup a alert window?
			logging.exception( e )
			hasError = True
Esempio n. 3
0
 def doMainLoop(self):
     budget = self.mainLoopBudget
     t0 = time.time()
     EditorModuleManager.get().updateAllModules()
     tx = time.time()
     if signals.dispatchAll():
         rest = 0
     else:
         t1 = time.time()
         elapsed = t1 - t0
         rest = budget - elapsed
     if rest > 0:
         time.sleep(rest)
Esempio n. 4
0
	def doMainLoop( self ):
		budget = self.mainLoopBudget
		t0 = time.time()
		EditorModuleManager.get().updateAllModules()
		tx = time.time()
		if signals.dispatchAll():
			rest = 0
		else:
			t1 = time.time()
			elapsed = t1 - t0
			rest = budget - elapsed
		if rest > 0:
			time.sleep( rest )
Esempio n. 5
0
    def init(self, **options):
        if options.get('stop_other_instance', False):
            if not checkSingleInstance():
                retryCount = 5
                logging.warning(
                    'running instance detected, trying to shut it down')
                sendRemoteMsg('shut_down')
                ready = False
                for i in range(retryCount):
                    time.sleep(1)
                    if checkSingleInstance():
                        ready = True
                        break
                if not ready:
                    logging.warning('timeout for shuting down other instance')
                    return False

        else:
            if not checkSingleInstance():
                logging.warning('running instance detected')
                return False

        self.loadConfig()

        if self.initialized: return True
        self.openProject()

        #scan packages
        excludePackages = self.getProject().getConfig('excluded_packages')
        self.packageManager.addExcludedPackage(excludePackages)

        if not self.packageManager.scanPackages(
                self.getPath(_GII_BUILTIN_PACKAGES_PATH)):
            return False

        if self.getProject().isLoaded():
            self.packageManager.scanPackages(self.getProject().envPackagePath)

        #modules
        EditorModuleManager.get().loadAllModules()
        signals.emitNow('module.loaded')  #some pre app-ready activities
        signals.dispatchAll()

        self.getProject().loadAssetLibrary()

        self.initialized = True
        self.running = True

        signals.connect('app.remote', self.onRemote)

        return True
Esempio n. 6
0
	def init( self, **options ):
		# if options.get( 'stop_other_instance', False ):
		# 	if not checkSingleInstance():
		# 		retryCount = 5
		# 		logging.warning( 'running instance detected, trying to shut it down' )
		# 		sendRemoteMsg( 'shut_down' )
		# 		ready = False
		# 		for i in range( retryCount ):
		# 			time.sleep( 1 )
		# 			if checkSingleInstance():
		# 				ready = True
		# 				break
		# 		if not ready:
		# 			logging.warning( 'timeout for shuting down other instance' )
		# 			return False

		# else:
		# 	if not checkSingleInstance():
		# 		logging.warning( 'running instance detected' )
		# 		return False
		
		self.loadConfig()
		self.loadSettings()

		if self.initialized: return True
		self.openProject()
		
		# #scan packages
		# excludePackages = self.getProject().getConfig( 'excluded_packages' )
		# self.packageManager.addExcludedPackage( excludePackages )

		# if not self.packageManager.scanPackages( self.getPath( _GII_BUILTIN_PACKAGES_PATH ) ):
		# 	return False

		# if self.getProject().isLoaded():
		# 	self.packageManager.scanPackages( self.getProject().envPackagePath )

		# #modules
		EditorModuleManager.get().loadAllModules()
		signals.emitNow( 'module.loaded' ) #some pre app-ready activities
		signals.dispatchAll()

		# self.getProject().loadAssetLibrary()

		self.initialized = True
		self.running     = True

		# signals.connect( 'app.remote', self.onRemote )

		return True
Esempio n. 7
0
    def __init__(self):
        assert (not EditorApp._singleton)
        EditorApp._singleton = self
        EditorModuleManager.get()._app = self

        self.defaultMainloopBudget = 0.005

        self.initialized = False
        self.projectLoaded = False
        self.flagModified = False
        self.debugging = False
        self.running = False
        self.basePath = getMainModulePath()
        self.dataPaths = []
        self.config = {}
        self.packageManager = PackageManager()

        self.commandRegistry = EditorCommandRegistry.get()
        self.remoteCommandRegistry = RemoteCommandRegistry.get()

        self.registerDataPath(self.getPath('data'))

        signals.connect('module.register', self.onModuleRegister)
Esempio n. 8
0
	def __init__(self):
		assert(not EditorApp._singleton)
		EditorApp._singleton = self
		EditorModuleManager.get()._app = self

		self.defaultMainloopBudget = 0.005

		self.initialized   = False
		self.projectLoaded = False
		self.flagModified  = False
		self.debugging     = False
		self.running       = False
		self.basePath      = getMainModulePath()
		self.dataPaths     = []
		self.config        = {}
		self.packageManager   = PackageManager()

		self.commandRegistry       = EditorCommandRegistry.get()
		self.remoteCommandRegistry = RemoteCommandRegistry.get()
		
		self.registerDataPath( self.getPath('data') )

		signals.connect( 'module.register', self.onModuleRegister )
Esempio n. 9
0
 def onModuleRegister(self, m):
     if self.running:
         logging.info('registered in runtime:' + m.getName())
         EditorModuleManager.get().loadModule(m)
Esempio n. 10
0
class EditorApp(object):
    _singleton = None

    @staticmethod
    def get():
        return _singleton

    def __init__(self):
        assert (not EditorApp._singleton)
        EditorApp._singleton = self
        EditorModuleManager.get()._app = self

        self.defaultMainloopBudget = 0.005

        self.initialized = False
        self.projectLoaded = False
        self.flagModified = False
        self.debugging = False
        self.running = False
        self.basePath = getMainModulePath()
        self.dataPaths = []
        self.config = {}
        self.packageManager = PackageManager()

        self.commandRegistry = EditorCommandRegistry.get()
        self.remoteCommandRegistry = RemoteCommandRegistry.get()

        self.registerDataPath(self.getPath('data'))

        signals.connect('module.register', self.onModuleRegister)

    def onModuleRegister(self, m):
        if self.running:
            logging.info('registered in runtime:' + m.getName())
            EditorModuleManager.get().loadModule(m)

    def init(self, **options):
        if options.get('stop_other_instance', False):
            if not checkSingleInstance():
                retryCount = 5
                logging.warning(
                    'running instance detected, trying to shut it down')
                sendRemoteMsg('shut_down')
                ready = False
                for i in range(retryCount):
                    time.sleep(1)
                    if checkSingleInstance():
                        ready = True
                        break
                if not ready:
                    logging.warning('timeout for shuting down other instance')
                    return False

        else:
            if not checkSingleInstance():
                logging.warning('running instance detected')
                return False

        self.loadConfig()

        if self.initialized: return True
        self.openProject()

        #scan packages
        excludePackages = self.getProject().getConfig('excluded_packages')
        self.packageManager.addExcludedPackage(excludePackages)

        if not self.packageManager.scanPackages(
                self.getPath(_GII_BUILTIN_PACKAGES_PATH)):
            return False

        if self.getProject().isLoaded():
            self.packageManager.scanPackages(self.getProject().envPackagePath)

        #modules
        EditorModuleManager.get().loadAllModules()
        signals.emitNow('module.loaded')  #some pre app-ready activities
        signals.dispatchAll()

        self.getProject().loadAssetLibrary()

        self.initialized = True
        self.running = True

        signals.connect('app.remote', self.onRemote)

        return True

    def run(self, **kwargs):
        if not self.initialized:
            if not self.init(**kwargs):
                return False
        hasError = False
        self.resetMainLoopBudget()

        try:
            signals.emitNow('app.pre_start')

            EditorModuleManager.get().startAllModules()
            self.getProject().getAssetLibrary().scanProject()

            signals.emitNow('app.start')
            signals.dispatchAll()

            self.saveConfig()

            EditorModuleManager.get().tellAllModulesAppReady()
            signals.emit('app.ready')

            #main loop
            while self.running:
                self.doMainLoop()

        except Exception, e:
            #TODO: popup a alert window?
            logging.exception(e)
            hasError = True

        signals.emitNow('app.close')

        signals.dispatchAll()
        EditorModuleManager.get().stopAllModules()

        if not hasError:
            self.getProject().save()

        signals.dispatchAll()
        EditorModuleManager.get().unloadAllModules()
        return True
Esempio n. 11
0
 def affirmModule(self, name):
     return EditorModuleManager.get().affirmModule(name)
Esempio n. 12
0
 def getModule(self, name):
     return EditorModuleManager.get().getModule(name)
Esempio n. 13
0
	def onModuleRegister(self, m):		
		if self.running:
			logging.info('registered in runtime:'+m.getName())
			EditorModuleManager.get().loadModule(m)
Esempio n. 14
0
	def affirmModule(self, name):
		return EditorModuleManager.get().affirmModule( name )
Esempio n. 15
0
	def getModule(self, name):
		return EditorModuleManager.get().getModule( name )