eric6.py

changeset 6267
350655a6c85f
parent 6181
2ae7e332b941
child 6364
6a496f0886ad
--- a/eric6.py	Sun Apr 22 14:01:39 2018 +0200
+++ b/eric6.py	Sun Apr 22 19:21:44 2018 +0200
@@ -17,7 +17,8 @@
 
 # generate list of arguments to be remembered for a restart
 restartArgsList = ["--no-splash", "--plugin", "--debug", "--config",
-                   "--pyqt4", "--settings", "--disable-crash"]
+                   "--pyqt4", "--settings", "--disable-crash",
+                   "--disable-plugin"]
 restartArgs = [arg for arg in sys.argv[1:]
                if arg.split("=", 1)[0] in restartArgsList]
 
@@ -114,20 +115,38 @@
     if res > 0:
         if "--no-splash" in sys.argv and \
                 sys.argv.index("--no-splash") < ddindex:
-            del sys.argv[sys.argv.index("--no-splash")]
+            sys.argv.remove("--no-splash")
+            ddindex -= 1
         if "--no-open" in sys.argv and sys.argv.index("--no-open") < ddindex:
-            del sys.argv[sys.argv.index("--no-open")]
+            sys.argv.remove("--no-open")
+            ddindex -= 1
         if "--no-crash" in sys.argv and sys.argv.index("--no-crash") < ddindex:
-            del sys.argv[sys.argv.index("--no-crash")]
+            sys.argv.remove("--no-crash")
         if "--disable-crash" in sys.argv and \
                 sys.argv.index("--disable-crash") < ddindex:
-            del sys.argv[sys.argv.index("--disable-crash")]
+            sys.argv.remove("--disable-crash")
+            ddindex -= 1
         if "--debug" in sys.argv and sys.argv.index("--debug") < ddindex:
-            del sys.argv[sys.argv.index("--debug")]
+            sys.argv.remove("--debug")
+            ddindex -= 1
+        for arg in sys.argv:
+            if arg.startswith("--config=") and \
+               sys.argv.index(arg) < ddindex:
+                sys.argv.remove(arg)
+                ddindex -= 1
+                break
         for arg in sys.argv:
-            if arg.startswith("--config="):
+            if arg.startswith("--plugin=") and \
+               sys.argv.index(arg) < ddindex:
                 sys.argv.remove(arg)
+                ddindex -= 1
                 break
+        for arg in sys.argv[:]:
+            if arg.startswith("--disable-plugin=") and \
+               sys.argv.index(arg) < ddindex:
+                sys.argv.remove(arg)
+                ddindex -= 1
+        
         if len(sys.argv) > 1:
             client.processArgs(sys.argv[1:])
         sys.exit(0)
@@ -247,6 +266,8 @@
          "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)"),
         ("--pyqt4",
@@ -286,11 +307,12 @@
     
     # 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:
-        del sys.argv[sys.argv.index("--no-splash")]
+        sys.argv.remove("--no-splash")
+        ddindex -= 1
         splash = NoneSplashScreen()
     elif not Preferences.getUI("ShowSplash"):
         splash = NoneSplashScreen()
@@ -313,22 +335,35 @@
     noopen = False
     nocrash = False
     disablecrash = False
+    disabledPlugins = []
     if "--no-open" in sys.argv and sys.argv.index("--no-open") < ddindex:
-        del sys.argv[sys.argv.index("--no-open")]
+        sys.argv.remove("--no-open")
+        ddindex -= 1
         noopen = True
     if "--no-crash" in sys.argv and sys.argv.index("--no-crash") < ddindex:
-        del sys.argv[sys.argv.index("--no-crash")]
+        sys.argv.remove("--no-crash")
+        ddindex -= 1
         nocrash = True
     if "--disable-crash" in sys.argv and \
             sys.argv.index("--disable-crash") < ddindex:
-        del sys.argv[sys.argv.index("--disable-crash")]
+        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
@@ -357,8 +392,8 @@
 
     splash.showMessage(
         QCoreApplication.translate("eric6", "Generating Main Window..."))
-    mainWindow = UserInterface(app, loc, splash, pluginFile, noopen, nocrash,
-                               disablecrash, restartArgs)
+    mainWindow = UserInterface(app, loc, splash, pluginFile, disabledPlugins,
+                               noopen, nocrash, disablecrash, restartArgs)
     app.lastWindowClosed.connect(app.quit)
     mainWindow.show()
     

eric ide

mercurial