diff -r 93a6141ecbf1 -r a73d553ef521 Project/ProjectResourcesBrowser.py --- a/Project/ProjectResourcesBrowser.py Sat Dec 01 11:39:28 2018 +0100 +++ b/Project/ProjectResourcesBrowser.py Sat Dec 01 19:07:01 2018 +0100 @@ -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 ###########################################################################