Project/ProjectResourcesBrowser.py

branch
maintenance
changeset 6646
51eefa621de4
parent 6645
ad476851d7e0
--- a/Project/ProjectResourcesBrowser.py	Sat Dec 01 11:45:24 2018 +0100
+++ b/Project/ProjectResourcesBrowser.py	Thu Jan 10 14:22:59 2019 +0100
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (c) 2002 - 2018 Detlev Offenbach <detlev@die-offenbachs.de>
+# Copyright (c) 2002 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
 #
 
 """
@@ -92,6 +92,10 @@
                 self.tr('Compile all resources'),
                 self.__compileAllResources)
             self.menu.addSeparator()
+            self.menu.addAction(
+                self.tr('Configure rcc Compiler'),
+                self.__configureRccCompiler)
+            self.menu.addSeparator()
         else:
             if self.hooks["compileResource"] is not None:
                 self.menu.addAction(
@@ -154,6 +158,10 @@
                 self.__compileAllResources)
             self.backMenu.addSeparator()
             self.backMenu.addAction(
+                self.tr('Configure rcc Compiler'),
+                self.__configureRccCompiler)
+            self.backMenu.addSeparator()
+            self.backMenu.addAction(
                 self.tr('New resource...'), self.__newResource)
         else:
             if self.hooks["compileAllResources"] is not None:
@@ -191,6 +199,10 @@
                 self.tr('Compile resources'),
                 self.__compileSelectedResources)
             self.multiMenu.addSeparator()
+            self.multiMenu.addAction(
+                self.tr('Configure rcc Compiler'),
+                self.__configureRccCompiler)
+            self.multiMenu.addSeparator()
         else:
             if self.hooks["compileSelectedResources"] is not None:
                 act = self.multiMenu.addAction(
@@ -223,6 +235,10 @@
                 self.tr('Compile all resources'),
                 self.__compileAllResources)
             self.dirMenu.addSeparator()
+            self.dirMenu.addAction(
+                self.tr('Configure rcc Compiler'),
+                self.__configureRccCompiler)
+            self.dirMenu.addSeparator()
         else:
             if self.hooks["compileAllResources"] is not None:
                 self.dirMenu.addAction(
@@ -264,6 +280,10 @@
                 self.tr('Compile all resources'),
                 self.__compileAllResources)
             self.dirMultiMenu.addSeparator()
+            self.dirMultiMenu.addAction(
+                self.tr('Configure rcc Compiler'),
+                self.__configureRccCompiler)
+            self.dirMultiMenu.addSeparator()
         else:
             if self.hooks["compileAllResources"] is not None:
                 self.dirMultiMenu.addAction(
@@ -667,6 +687,23 @@
                     args.append("-py3")
             else:
                 return None
+            defaultParameters = self.project.getDefaultRccCompilerParameters()
+            rccParameters = self.project.pdata["RCCPARAMS"]
+            if rccParameters["CompressionThreshold"] != \
+                    defaultParameters["CompressionThreshold"]:
+                args.append("-threshold")
+                args.append(str(rccParameters["CompressionThreshold"]))
+            if rccParameters["CompressLevel"] != \
+                    defaultParameters["CompressLevel"]:
+                args.append("-compress")
+                args.append(str(rccParameters["CompressLevel"]))
+            if rccParameters["CompressionDisable"] != \
+                    defaultParameters["CompressionDisable"]:
+                args.append("-no-compress")
+            if rccParameters["PathPrefix"] != \
+                    defaultParameters["PathPrefix"]:
+                args.append("-root")
+                args.append(rccParameters["PathPrefix"])
         elif self.project.getProjectLanguage() == "Ruby":
             if self.project.getProjectType() == "Qt4":
                 self.rccCompiler = 'rbrcc'
@@ -907,6 +944,30 @@
         """
         ProjectBaseBrowser.handlePreferencesChanged(self)
     
+    def __configureRccCompiler(self):
+        """
+        Private slot to configure some non-common rcc compiler options.
+        """
+        from .RccCompilerOptionsDialog import RccCompilerOptionsDialog
+        
+        params = self.project.pdata["RCCPARAMS"]
+        
+        dlg = RccCompilerOptionsDialog(params)
+        if dlg.exec_() == QDialog.Accepted:
+            threshold, compression, noCompression, root = dlg.getData()
+            if threshold != params["CompressionThreshold"]:
+                params["CompressionThreshold"] = threshold
+                self.project.setDirty(True)
+            if compression != params["CompressLevel"]:
+                params["CompressLevel"] = compression
+                self.project.setDirty(True)
+            if noCompression != params["CompressionDisable"]:
+                params["CompressionDisable"] = noCompression
+                self.project.setDirty(True)
+            if root != params["PathPrefix"]:
+                params["PathPrefix"] = root
+                self.project.setDirty(True)
+    
     ###########################################################################
     ## Support for hooks below
     ###########################################################################

eric ide

mercurial