def main(): """ Main entry point into the application. @exception Exception re-raised for any exception occurring in the main program logic """ from Globals import AppInfo import Globals global args, mainWindow, splash, restartArgs sys.excepthook = excepthook options = [ ("--config=configDir", "use the given directory as the one containing the config files"), ("--debug", "activate debugging output to the console"), ("--nosplash", "don't show the splash screen"), ("--noopen", "don't open anything at startup except that given in command"), ("--plugin=plugin-file", "load the given plugin file (plugin development)"), ("--start-file", "load the most recently opened file"), ("--start-multi", "load the most recently opened multi-project"), ("--start-project", "load the most recently opened project"), ("--start-session", "load the global session file"), ("--", "indicate that there are options for the program to be debugged"), ("", "(everything after that is considered arguments for this program)") ] appinfo = AppInfo.makeAppInfo(sys.argv, "Eric6", "[project | files... [--] [debug-options]]", "A Python IDE", options) if not Globals.checkBlacklistedVersions(): sys.exit(100) app = E5Application(sys.argv) from Toolbox import Startup ddindex = Startup.handleArgs(sys.argv, appinfo) logging.debug("Importing Preferences") import Preferences if Preferences.getUI("SingleApplicationMode"): handleSingleApplication(ddindex) # set the library paths for plugins Startup.setLibraryPaths() # set the search path for icons Startup.initializeResourceSearchPath() # generate and show a splash window, if not suppressed from UI.SplashScreen import SplashScreen, NoneSplashScreen if "--nosplash" in sys.argv and sys.argv.index("--nosplash") < ddindex: del sys.argv[sys.argv.index("--nosplash")] splash = NoneSplashScreen() elif not Preferences.getUI("ShowSplash"): splash = NoneSplashScreen() else: splash = SplashScreen() QCoreApplication.processEvents() # modify the executable search path for the PyQt5 installer if Globals.isWindowsPlatform(): pyqtDataDir = Globals.getPyQt5ModulesDirectory() if os.path.exists(os.path.join(pyqtDataDir, "bin")): path = os.path.join(pyqtDataDir, "bin") + \ os.pathsep + os.environ["PATH"] else: path = pyqtDataDir + os.pathsep + os.environ["PATH"] os.environ["PATH"] = path pluginFile = None noopen = False if "--noopen" in sys.argv and sys.argv.index("--noopen") < ddindex: del sys.argv[sys.argv.index("--noopen")] noopen = True for arg in sys.argv: if arg.startswith("--plugin=") and sys.argv.index(arg) < ddindex: import Utilities # extract the plugin development option pluginFile = arg.replace("--plugin=", "").replace('"', "") sys.argv.remove(arg) pluginFile = os.path.expanduser(pluginFile) pluginFile = Utilities.normabspath(pluginFile) break # is there a set of filenames or options on the command line, # if so, pass them to the UI if len(sys.argv) > 1: args = sys.argv[1:] # get the Qt4 translations directory qt4TransDir = Preferences.getQt4TranslationsDir() if not qt4TransDir: qt4TransDir = QLibraryInfo.location(QLibraryInfo.TranslationsPath) # Load translation files and install them loc = Startup.loadTranslators(qt4TransDir, app, ("qscintilla",)) splash.showMessage(QCoreApplication.translate("eric6", "Starting...")) # We can only import these after creating the E5Application because they # make Qt calls that need the E5Application to exist. from UI.UserInterface import UserInterface splash.showMessage( QCoreApplication.translate("eric6", "Generating Main Window...")) try: mainWindow = UserInterface(app, loc, splash, pluginFile, noopen, restartArgs) app.lastWindowClosed.connect(app.quit) mainWindow.show() QTimer.singleShot(0, uiStartUp) # generate a graphical error handler from E5Gui import E5ErrorMessage eMsg = E5ErrorMessage.qtHandler() eMsg.setMinimumSize(600, 400) # start the event loop res = app.exec_() logging.debug("Shutting down, result {0:d}".format(res)) logging.shutdown() sys.exit(res) except Exception as err: raise err
def main(): """ Main entry point into the application. """ from Globals import AppInfo import Globals global app, args, mainWindow, splash, restartArgs, inMainLoop sys.excepthook = excepthook from PyQt5.QtGui import QGuiApplication QGuiApplication.setDesktopFileName("eric6.desktop") options = [ ("--config=configDir", "use the given directory as the one containing the config files"), ("--debug", "activate debugging output to the console"), ("--no-splash", "don't show the splash screen"), ("--no-open", "don't open anything at startup except that given in command"), ("--no-crash", "don't check for a crash session file on startup"), ("--disable-crash", "disable the support for crash sessions"), ("--disable-plugin=<plug-in name>", "disable the given plug-in (may be repeated)"), ("--plugin=plugin-file", "load the given plugin file (plugin development)"), ("--settings=settingsDir", "use the given directory to store the settings files"), ("--start-file", "load the most recently opened file"), ("--start-multi", "load the most recently opened multi-project"), ("--start-project", "load the most recently opened project"), ("--start-session", "load the global session file"), ("--", "indicate that there are options for the program to be debugged"), ("", "(everything after that is considered arguments for this program)") ] appinfo = AppInfo.makeAppInfo(sys.argv, "Eric6", "[project | files... [--] [debug-options]]", "A Python IDE", options) if "__PYVENV_LAUNCHER__" in os.environ: del os.environ["__PYVENV_LAUNCHER__"] from Toolbox import Startup # set the library paths for plugins Startup.setLibraryPaths() app = E5Application(sys.argv) ddindex = Startup.handleArgs(sys.argv, appinfo) logging.debug("Importing Preferences") import Preferences if Preferences.getUI("SingleApplicationMode"): handleSingleApplication(ddindex) # set the search path for icons Startup.initializeResourceSearchPath() # generate and show a splash window, if not suppressed from UI.SplashScreen import SplashScreen, NoneSplashScreen if "--no-splash" in sys.argv and sys.argv.index("--no-splash") < ddindex: sys.argv.remove("--no-splash") ddindex -= 1 splash = NoneSplashScreen() elif not Preferences.getUI("ShowSplash"): splash = NoneSplashScreen() else: splash = SplashScreen() QCoreApplication.processEvents() # modify the executable search path for the PyQt5 installer if Globals.isWindowsPlatform(): pyqtDataDir = Globals.getPyQt5ModulesDirectory() if os.path.exists(os.path.join(pyqtDataDir, "bin")): path = os.path.join(pyqtDataDir, "bin") else: path = pyqtDataDir os.environ["PATH"] = path + os.pathsep + os.environ["PATH"] pluginFile = None noopen = False nocrash = False disablecrash = False disabledPlugins = [] if "--no-open" in sys.argv and sys.argv.index("--no-open") < ddindex: sys.argv.remove("--no-open") ddindex -= 1 noopen = True if "--no-crash" in sys.argv and sys.argv.index("--no-crash") < ddindex: sys.argv.remove("--no-crash") ddindex -= 1 nocrash = True if ("--disable-crash" in sys.argv and sys.argv.index("--disable-crash") < ddindex): sys.argv.remove("--disable-crash") ddindex -= 1 disablecrash = True for arg in sys.argv[:]: if (arg.startswith("--disable-plugin=") and sys.argv.index(arg) < ddindex): # extract the plug-in name pluginName = arg.replace("--disable-plugin=", "") sys.argv.remove(arg) ddindex -= 1 disabledPlugins.append(pluginName) for arg in sys.argv: if arg.startswith("--plugin=") and sys.argv.index(arg) < ddindex: import Utilities # extract the plugin development option pluginFile = arg.replace("--plugin=", "").replace('"', "") sys.argv.remove(arg) ddindex -= 1 pluginFile = os.path.expanduser(pluginFile) pluginFile = Utilities.normabspath(pluginFile) break # is there a set of filenames or options on the command line, # if so, pass them to the UI if len(sys.argv) > 1: args = sys.argv[1:] # get the Qt translations directory qtTransDir = Preferences.getQtTranslationsDir() if not qtTransDir: qtTransDir = QLibraryInfo.location(QLibraryInfo.TranslationsPath) # Load translation files and install them loc = Startup.loadTranslators(qtTransDir, app, ("qscintilla", )) # Initialize SSL stuff from E5Network.E5SslUtilities import initSSL initSSL() splash.showMessage(QCoreApplication.translate("eric6", "Starting...")) # We can only import these after creating the E5Application because they # make Qt calls that need the E5Application to exist. from UI.UserInterface import UserInterface splash.showMessage( QCoreApplication.translate("eric6", "Generating Main Window...")) mainWindow = UserInterface(app, loc, splash, pluginFile, disabledPlugins, noopen, nocrash, disablecrash, restartArgs, originalPathString) app.lastWindowClosed.connect(app.quit) mainWindow.show() QTimer.singleShot(0, uiStartUp) # generate a graphical error handler from E5Gui import E5ErrorMessage eMsg = E5ErrorMessage.qtHandler() eMsg.setMinimumSize(600, 400) # start the event loop inMainLoop = True res = app.exec_() logging.debug("Shutting down, result %d", res) logging.shutdown() sys.exit(res)
def main(): """ Main entry point into the application. """ global args, mainWindow, splash, restartArgs sys.excepthook = excepthook options = [\ ("--config=configDir", "use the given directory as the one containing the config files"), ("--debug", "activate debugging output to the console"), ("--nosplash", "don't show the splash screen"), ("--noopen", "don't open anything at startup except that given in command"), ("--nokde" , "don't use KDE widgets"), ("--plugin=plugin-file", "load the given plugin file (plugin development)"), ("--start-session", "load the global session file"), ("--", "indicate that there are options for the program to be debugged"), ("", "(everything after that is considered arguments for this program)") ] kqOptions = [\ ("config \\", "use the given directory as the one containing the config files"), ("debug", "activate debugging output to the console"), ("nosplash", "don't show the splash screen"), ("noopen", "don't open anything at startup except that given in command"), ("nokde" , "don't use KDE widgets"), ("plugin \\", "load the given plugin file (plugin development)"), ("start-session", "load the global session file"), ("!+file", "") ] appinfo = Startup.makeAppInfo(sys.argv, "Eric4", "[project | files... [--] [debug-options]]", "A Python IDE", options) ddindex = Startup.handleArgs(sys.argv, appinfo) if not Utilities.checkBlacklistedVersions(): sys.exit(100) app = KQApplication(sys.argv, kqOptions) if Preferences.getUI("SingleApplicationMode"): handleSingleApplication(ddindex) # set the library paths for plugins Startup.setLibraryPaths() # set the search path for icons Startup.initializeResourceSearchPath() # generate and show a splash window, if not suppressed if "--nosplash" in sys.argv and sys.argv.index("--nosplash") < ddindex: del sys.argv[sys.argv.index("--nosplash")] splash = NoneSplashScreen() elif not Preferences.getUI("ShowSplash"): splash = NoneSplashScreen() else: splash = SplashScreen() # modify the executable search path for the PyQt4 installer if Utilities.isWindowsPlatform(): pyqtDataDir = Utilities.getPyQt4ModulesDirectory() if os.path.exists(os.path.join(pyqtDataDir, "bin")): path = os.path.join(pyqtDataDir, "bin") + os.pathsep + os.environ["PATH"] else: path = pyqtDataDir + os.pathsep + os.environ["PATH"] os.environ["PATH"] = path pluginFile = None noopen = False if "--noopen" in sys.argv and sys.argv.index("--noopen") < ddindex: del sys.argv[sys.argv.index("--noopen")] noopen = True for arg in sys.argv: if arg.startswith("--plugin=") and sys.argv.index(arg) < ddindex: # extract the plugin development option pluginFile = arg.replace("--plugin=", "").replace('"', "") sys.argv.remove(arg) pluginFile = os.path.expanduser(pluginFile) pluginFile = Utilities.normabspath(pluginFile) break # is there a set of filenames or options on the command line, # if so, pass them to the UI if len(sys.argv) > 1: args = sys.argv[1:] # Set the applications string encoding try: sys.setappdefaultencoding(str(Preferences.getSystem("StringEncoding"))) except AttributeError: pass # get the Qt4 translations directory qt4TransDir = Preferences.getQt4TranslationsDir() if not qt4TransDir: qt4TransDir = QLibraryInfo.location(QLibraryInfo.TranslationsPath) # Load translation files and install them loc = Startup.loadTranslators(qt4TransDir, app, ("qscintilla",)) QTextCodec.setCodecForCStrings(QTextCodec.codecForName(\ str(Preferences.getSystem("StringEncoding")))) splash.showMessage(QApplication.translate("eric4", "Importing packages...")) # We can only import these after creating the KQApplication because they # make Qt calls that need the KQApplication to exist. from UI.UserInterface import UserInterface splash.showMessage(QApplication.translate("eric4", "Generating Main Window...")) try: mainWindow = UserInterface(app, loc, splash, pluginFile, noopen, restartArgs) app.connect(app, SIGNAL("lastWindowClosed()"), app, SLOT("quit()")) mainWindow.show() QTimer.singleShot(0, uiStartUp) # generate a graphical error handler eMsg = QErrorMessage.qtHandler() eMsg.setMinimumSize(600, 400) # start the event loop res = app.exec_() logging.debug("Shutting down, result %d" % res) logging.shutdown() sys.exit(res) except Exception, err: raise err