Utilities/Startup.py

changeset 2087
795992a5c561
parent 2085
b4c1f0b6dac2
child 2088
73a2ca4ac409
--- a/Utilities/Startup.py	Mon Oct 01 19:55:49 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2002 - 2012 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing some startup helper funcions
-"""
-
-import os
-import sys
-
-from PyQt4.QtCore import QTranslator, QLocale, QLibraryInfo
-from PyQt4.QtGui import QApplication
-
-from E5Gui.E5Application import E5Application
-
-import Preferences
-import Utilities
-from UI.Info import Version
-
-import UI.PixmapCache
-
-from eric5config import getConfig
-
-
-def makeAppInfo(argv, name, arg, description, options=[]):
-    """
-    Module function to generate a dictionary describing the application.
-    
-    @param argv list of commandline parameters (list of strings)
-    @param name name of the application (string)
-    @param arg commandline arguments (string)
-    @param description text describing the application (string)
-    @param options list of additional commandline options
-        (list of tuples of two strings (commandline option, option description)).
-        The options --version, --help and -h are always present and must not
-        be repeated in this list.
-    @return dictionary describing the application
-    """
-    return {
-        "bin": argv[0],
-        "arg": arg,
-        "name": name,
-        "description": description,
-        "version": Version,
-        "options": options
-        }
-
-
-def usage(appinfo, optlen=12):
-    """
-    Module function to show the usage information.
-    
-    @param appinfo dictionary describing the application
-    @param optlen length of the field for the commandline option (integer)
-    """
-    options = [\
-        ("--version",  "show the program's version number and exit"),
-        ("-h, --help", "show this help message and exit")
-    ]
-    options.extend(appinfo["options"])
-    
-    print("""
-Usage: {bin} [OPTIONS] {arg}
-
-{name} - {description}
-    
-Options:""".format(**appinfo))
-    for opt in options:
-        print("  {0}  {1}".format(opt[0].ljust(optlen), opt[1]))
-    sys.exit(0)
-
-
-def version(appinfo):
-    """
-    Module function to show the version information.
-    
-    @param appinfo dictionary describing the application
-    """
-    print("""
-{name} {version}
-
-{description}
-
-Copyright (c) 2002 - 2012 Detlev Offenbach <detlev@die-offenbachs.de>
-This is free software; see LICENSE.GPL3 for copying conditions.
-There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE.""".format(**appinfo))
-    sys.exit(0)
-
-
-def handleArgs(argv, appinfo):
-    """
-    Module function to handle the always present commandline options.
-    
-    @param argv list of commandline parameters (list of strings)
-    @param appinfo dictionary describing the application
-    @return index of the '--' option (integer). This is used to tell
-        the application, that all additional options don't belong to
-        the application.
-    """
-    ddindex = 30000     # arbitrarily large number
-    args = {
-        "--version": version,
-        "--help": usage,
-        "-h": usage
-        }
-    if '--' in argv:
-        ddindex = argv.index("--")
-    for a in args:
-        if a in argv and argv.index(a) < ddindex:
-            args[a](appinfo)
-    return ddindex
-
-
-def loadTranslatorForLocale(dirs, tn):
-    """
-    Module function to find and load a specific translation.
-
-    @param dirs Searchpath for the translations. (list of strings)
-    @param tn The translation to be loaded. (string)
-    @return Tuple of a status flag and the loaded translator. (int, QTranslator)
-    """
-    trans = QTranslator(None)
-    for dir in dirs:
-        loaded = trans.load(tn, dir)
-        if loaded:
-            return (trans, True)
-    
-    print("Warning: translation file '" + tn + "'could not be loaded.")
-    print("Using default.")
-    return (None, False)
-
-
-def initializeResourceSearchPath():
-    """
-    Module function to initialize the default mime source factory.
-    """
-    defaultIconPath = os.path.join(getConfig('ericIconDir'), "default")
-    iconPaths = Preferences.getIcons("Path")
-    for iconPath in iconPaths:
-        if iconPath:
-            UI.PixmapCache.addSearchPath(iconPath)
-    if not defaultIconPath in iconPaths:
-        UI.PixmapCache.addSearchPath(defaultIconPath)
-
-
-def setLibraryPaths():
-    """
-    Module function to set the Qt library paths correctly for windows systems.
-    """
-    if Utilities.isWindowsPlatform():
-        from PyQt4 import pyqtconfig
-        libPath = os.path.join(pyqtconfig._pkg_config["pyqt_mod_dir"], "plugins")
-        if os.path.exists(libPath):
-            libPath = Utilities.fromNativeSeparators(libPath)
-            libraryPaths = QApplication.libraryPaths()
-            if libPath not in libraryPaths:
-                libraryPaths.insert(0, libPath)
-                QApplication.setLibraryPaths(libraryPaths)
-
-# the translator must not be deleted, therefore we save them here
-loaded_translators = {}
-
-
-def loadTranslators(qtTransDir, app, translationFiles=()):
-    """
-    Module function to load all required translations.
-    
-    @param qtTransDir directory of the Qt translations files (string)
-    @param app reference to the application object (QApplication)
-    @param translationFiles tuple of additional translations to
-        be loaded (tuple of strings)
-    @return the requested locale (string)
-    """
-    global loaded_translators
-    translations = ("qt", "eric5") + translationFiles
-    loc = Preferences.getUILanguage()
-    if loc is None:
-        return
-
-    if loc == "System":
-        loc = QLocale.system().name()
-    if loc != "C":
-        dirs = [getConfig('ericTranslationsDir'), Utilities.getConfigDir()]
-        if qtTransDir is not None:
-            dirs.append(qtTransDir)
-
-        loca = loc
-        for tf in ["{0}_{1}".format(tr, loc) for tr in translations]:
-            translator, ok = loadTranslatorForLocale(dirs, tf)
-            loaded_translators[tf] = translator
-            if ok:
-                app.installTranslator(translator)
-            else:
-                if tf.startswith("eric5"):
-                    loca = None
-        loc = loca
-    else:
-        loc = None
-    return loc
-
-
-def simpleAppStartup(argv, appinfo, mwFactory, quitOnLastWindowClosed=True,
-    app=None, raiseIt=True):
-    """
-    Module function to start up an application that doesn't need a specialized start up.
-    
-    This function is used by all of eric5's helper programs.
-    
-    @param argv list of commandline parameters (list of strings)
-    @param appinfo dictionary describing the application
-    @param mwFactory factory function generating the main widget. This
-        function must accept the following parameter.
-        <dl>
-            <dt>argv</dt>
-            <dd>list of commandline parameters (list of strings)</dd>
-        </dl>
-    @keyparam quitOnLastWindowClosed flag indicating to quit the application,
-        if the last window was closed (boolean)
-    @keyparam app reference to the application object (QApplication or None)
-    @keyparam raiseIt flag indicating to raise the generated application window (boolean)
-    """
-    handleArgs(argv, appinfo)
-    if app is None:
-        app = E5Application(argv)
-    app.setQuitOnLastWindowClosed(quitOnLastWindowClosed)
-    
-    setLibraryPaths()
-    initializeResourceSearchPath()
-    QApplication.setWindowIcon(UI.PixmapCache.getIcon("eric.png"))
-    
-    qt4TransDir = Preferences.getQt4TranslationsDir()
-    if not qt4TransDir:
-        qt4TransDir = QLibraryInfo.location(QLibraryInfo.TranslationsPath)
-    loadTranslators(qt4TransDir, app)
-    
-    w = mwFactory(argv)
-    if quitOnLastWindowClosed:
-        app.lastWindowClosed.connect(app.quit)
-    w.show()
-    if raiseIt:
-        w.raise_()
-    
-    return app.exec_()

eric ide

mercurial