src/eric7/Project/ProjectResourcesBrowser.py

branch
eric7
changeset 9517
d73c3a1e432b
parent 9516
0f023e61a9b5
child 9520
e12589f1d408
diff -r 0f023e61a9b5 -r d73c3a1e432b src/eric7/Project/ProjectResourcesBrowser.py
--- a/src/eric7/Project/ProjectResourcesBrowser.py	Wed Nov 16 18:11:52 2022 +0100
+++ b/src/eric7/Project/ProjectResourcesBrowser.py	Thu Nov 17 18:11:42 2022 +0100
@@ -85,6 +85,9 @@
         project.projectPropertiesChanged.connect(self._initMenusAndVcs)
 
         projectBrowser.preferencesChanged.connect(self.handlePreferencesChanged)
+        projectBrowser.processChangedProjectFiles.connect(
+            self.__compileChangedResources
+        )
 
         self.appendStderr.connect(projectBrowser.appendStderr)
         self.closeSourceWindow.connect(projectBrowser.closeSourceWindow)
@@ -879,76 +882,81 @@
 
         return False
 
-    def compileChangedResources(self):
+    def __compileChangedResources(self):
         """
-        Public method to compile all changed resources to source files.
+        Private method to compile all changed resources to source files.
         """
-        if self.hooks["compileChangedResources"] is not None:
-            self.hooks["compileChangedResources"](
-                self.project.getProjectData(dataKey="RESOURCES")
-            )
-        else:
-            if len(self.project.getProjectData(dataKey="RESOURCES")) == 0:
-                # The project does not contain resource files
-                return
+        if Preferences.getProject("AutoCompileResources"):
+            if self.hooks["compileChangedResources"] is not None:
+                self.hooks["compileChangedResources"](
+                    self.project.getProjectData(dataKey="RESOURCES")
+                )
+            else:
+                if len(self.project.getProjectData(dataKey="RESOURCES")) == 0:
+                    # The project does not contain resource files
+                    return
+
+                progress = EricProgressDialog(
+                    self.tr("Determining changed resources..."),
+                    self.tr("Abort"),
+                    0,
+                    100,
+                    self.tr("%v/%m Resources"),
+                    self,
+                )
+                progress.setMinimumDuration(0)
+                progress.setWindowTitle(self.tr("Resources"))
 
-            progress = EricProgressDialog(
-                self.tr("Determining changed resources..."),
-                self.tr("Abort"),
-                0,
-                100,
-                self.tr("%v/%m Resources"),
-                self,
-            )
-            progress.setMinimumDuration(0)
-            progress.setWindowTitle(self.tr("Resources"))
-
-            # get list of changed resources
-            changedResources = []
-            progress.setMaximum(len(self.project.getProjectData(dataKey="RESOURCES")))
-            for prog, fn in enumerate(self.project.getProjectData(dataKey="RESOURCES")):
-                progress.setValue(prog)
+                # get list of changed resources
+                changedResources = []
+                progress.setMaximum(
+                    len(self.project.getProjectData(dataKey="RESOURCES"))
+                )
+                for prog, fn in enumerate(
+                    self.project.getProjectData(dataKey="RESOURCES")
+                ):
+                    progress.setValue(prog)
+                    QApplication.processEvents()
+                    ifn = os.path.join(self.project.ppath, fn)
+                    if self.project.getProjectLanguage() == "Python3":
+                        dirname, filename = os.path.split(os.path.splitext(ifn)[0])
+                        ofn = os.path.join(
+                            dirname, self.RCFilenameFormatPython.format(filename)
+                        )
+                    elif self.project.getProjectLanguage() == "Ruby":
+                        dirname, filename = os.path.split(os.path.splitext(ifn)[0])
+                        ofn = os.path.join(
+                            dirname, self.RCFilenameFormatRuby.format(filename)
+                        )
+                    else:
+                        return
+                    if (
+                        not os.path.exists(ofn)
+                        or os.stat(ifn).st_mtime > os.stat(ofn).st_mtime
+                        or self.__checkResourcesNewer(ifn, os.stat(ofn).st_mtime)
+                    ):
+                        changedResources.append(fn)
+                progress.setValue(len(self.project.getProjectData(dataKey="RESOURCES")))
                 QApplication.processEvents()
-                ifn = os.path.join(self.project.ppath, fn)
-                if self.project.getProjectLanguage() == "Python3":
-                    dirname, filename = os.path.split(os.path.splitext(ifn)[0])
-                    ofn = os.path.join(
-                        dirname, self.RCFilenameFormatPython.format(filename)
-                    )
-                elif self.project.getProjectLanguage() == "Ruby":
-                    dirname, filename = os.path.split(os.path.splitext(ifn)[0])
-                    ofn = os.path.join(
-                        dirname, self.RCFilenameFormatRuby.format(filename)
-                    )
-                else:
-                    return
-                if (
-                    not os.path.exists(ofn)
-                    or os.stat(ifn).st_mtime > os.stat(ofn).st_mtime
-                    or self.__checkResourcesNewer(ifn, os.stat(ofn).st_mtime)
-                ):
-                    changedResources.append(fn)
-            progress.setValue(len(self.project.getProjectData(dataKey="RESOURCES")))
-            QApplication.processEvents()
 
-            if changedResources:
-                progress.setLabelText(self.tr("Compiling changed resources..."))
-                progress.setMaximum(len(changedResources))
-                progress.setValue(0)
-                QApplication.processEvents()
-                for prog, fn in enumerate(changedResources):
-                    progress.setValue(prog)
-                    if progress.wasCanceled():
-                        break
-                    proc = self.__compileQRC(fn, True, progress)
-                    if proc is not None:
-                        while proc.state() == QProcess.ProcessState.Running:
-                            QThread.msleep(100)
-                            QApplication.processEvents()
-                    else:
-                        break
-                progress.setValue(len(changedResources))
-                QApplication.processEvents()
+                if changedResources:
+                    progress.setLabelText(self.tr("Compiling changed resources..."))
+                    progress.setMaximum(len(changedResources))
+                    progress.setValue(0)
+                    QApplication.processEvents()
+                    for prog, fn in enumerate(changedResources):
+                        progress.setValue(prog)
+                        if progress.wasCanceled():
+                            break
+                        proc = self.__compileQRC(fn, True, progress)
+                        if proc is not None:
+                            while proc.state() == QProcess.ProcessState.Running:
+                                QThread.msleep(100)
+                                QApplication.processEvents()
+                        else:
+                            break
+                    progress.setValue(len(changedResources))
+                    QApplication.processEvents()
 
     def handlePreferencesChanged(self):
         """

eric ide

mercurial