eric6/Project/ProjectResourcesBrowser.py

changeset 7635
0cdead130a81
parent 7628
f904d0eef264
child 7759
51aa6c6b66f7
equal deleted inserted replaced
7634:8c3d033e5044 7635:0cdead130a81
77 self.dirMenuActions = [] 77 self.dirMenuActions = []
78 self.dirMultiMenuActions = [] 78 self.dirMultiMenuActions = []
79 79
80 self.menu = QMenu(self) 80 self.menu = QMenu(self)
81 if self.project.getProjectType() in [ 81 if self.project.getProjectType() in [
82 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", 82 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C"
83 "PySide", "PySideC", "PySide2", "PySideC2"
84 ]: 83 ]:
85 self.menu.addAction( 84 self.menu.addAction(
86 self.tr('Compile resource'), 85 self.tr('Compile resource'),
87 self.__compileResource) 86 self.__compileResource)
88 self.menu.addAction( 87 self.menu.addAction(
120 self.menuActions.append(act) 119 self.menuActions.append(act)
121 act = self.menu.addAction(self.tr('Delete'), self.__deleteFile) 120 act = self.menu.addAction(self.tr('Delete'), self.__deleteFile)
122 self.menuActions.append(act) 121 self.menuActions.append(act)
123 self.menu.addSeparator() 122 self.menu.addSeparator()
124 if self.project.getProjectType() in [ 123 if self.project.getProjectType() in [
125 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", 124 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C"
126 "PySide", "PySideC", "PySide2", "PySideC2"
127 ]: 125 ]:
128 self.menu.addAction( 126 self.menu.addAction(
129 self.tr('New resource...'), self.__newResource) 127 self.tr('New resource...'), self.__newResource)
130 else: 128 else:
131 if self.hooks["newResource"] is not None: 129 if self.hooks["newResource"] is not None:
149 self.menu.addSeparator() 147 self.menu.addSeparator()
150 self.menu.addAction(self.tr('Configure...'), self._configure) 148 self.menu.addAction(self.tr('Configure...'), self._configure)
151 149
152 self.backMenu = QMenu(self) 150 self.backMenu = QMenu(self)
153 if self.project.getProjectType() in [ 151 if self.project.getProjectType() in [
154 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", 152 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C"
155 "PySide", "PySideC", "PySide2", "PySideC2"
156 ]: 153 ]:
157 self.backMenu.addAction( 154 self.backMenu.addAction(
158 self.tr('Compile all resources'), 155 self.tr('Compile all resources'),
159 self.__compileAllResources) 156 self.__compileAllResources)
160 self.backMenu.addSeparator() 157 self.backMenu.addSeparator()
192 self.backMenu.setEnabled(False) 189 self.backMenu.setEnabled(False)
193 190
194 # create the menu for multiple selected files 191 # create the menu for multiple selected files
195 self.multiMenu = QMenu(self) 192 self.multiMenu = QMenu(self)
196 if self.project.getProjectType() in [ 193 if self.project.getProjectType() in [
197 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", 194 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C"
198 "PySide", "PySideC", "PySide2", "PySideC2"
199 ]: 195 ]:
200 act = self.multiMenu.addAction( 196 act = self.multiMenu.addAction(
201 self.tr('Compile resources'), 197 self.tr('Compile resources'),
202 self.__compileSelectedResources) 198 self.__compileSelectedResources)
203 self.multiMenu.addSeparator() 199 self.multiMenu.addSeparator()
229 self.multiMenu.addSeparator() 225 self.multiMenu.addSeparator()
230 self.multiMenu.addAction(self.tr('Configure...'), self._configure) 226 self.multiMenu.addAction(self.tr('Configure...'), self._configure)
231 227
232 self.dirMenu = QMenu(self) 228 self.dirMenu = QMenu(self)
233 if self.project.getProjectType() in [ 229 if self.project.getProjectType() in [
234 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", 230 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C"
235 "PySide", "PySideC", "PySide2", "PySideC2"
236 ]: 231 ]:
237 self.dirMenu.addAction( 232 self.dirMenu.addAction(
238 self.tr('Compile all resources'), 233 self.tr('Compile all resources'),
239 self.__compileAllResources) 234 self.__compileAllResources)
240 self.dirMenu.addSeparator() 235 self.dirMenu.addSeparator()
275 self.dirMenu.addSeparator() 270 self.dirMenu.addSeparator()
276 self.dirMenu.addAction(self.tr('Configure...'), self._configure) 271 self.dirMenu.addAction(self.tr('Configure...'), self._configure)
277 272
278 self.dirMultiMenu = QMenu(self) 273 self.dirMultiMenu = QMenu(self)
279 if self.project.getProjectType() in [ 274 if self.project.getProjectType() in [
280 "Qt4", "Qt4C", "PyQt5", "PyQt5C", "E6Plugin", 275 "PyQt5", "PyQt5C", "E6Plugin", "PySide2", "PySide2C"
281 "PySide", "PySideC", "PySide2", "PySideC2"
282 ]: 276 ]:
283 self.dirMultiMenu.addAction( 277 self.dirMultiMenu.addAction(
284 self.tr('Compile all resources'), 278 self.tr('Compile all resources'),
285 self.__compileAllResources) 279 self.__compileAllResources)
286 self.dirMultiMenu.addSeparator() 280 self.dirMultiMenu.addSeparator()
554 ########################################################################### 548 ###########################################################################
555 549
556 def __readStdout(self): 550 def __readStdout(self):
557 """ 551 """
558 Private slot to handle the readyReadStandardOutput signal of the 552 Private slot to handle the readyReadStandardOutput signal of the
559 pyrcc4/pyrcc5/pyside-rcc/pyside2-rcc/rbrcc process. 553 pyrcc5/pyside2-rcc process.
560 """ 554 """
561 if self.compileProc is None: 555 if self.compileProc is None:
562 return 556 return
563 self.compileProc.setReadChannel(QProcess.StandardOutput) 557 self.compileProc.setReadChannel(QProcess.StandardOutput)
564 558
568 'replace') 562 'replace')
569 563
570 def __readStderr(self): 564 def __readStderr(self):
571 """ 565 """
572 Private slot to handle the readyReadStandardError signal of the 566 Private slot to handle the readyReadStandardError signal of the
573 pyrcc4/pyrcc5/pyside-rcc/pyside2-rcc/rbrcc process. 567 pyrcc5/pyside2-rcc/ process.
574 """ 568 """
575 if self.compileProc is None: 569 if self.compileProc is None:
576 return 570 return
577 571
578 ioEncoding = Preferences.getSystem("IOEncoding") 572 ioEncoding = Preferences.getSystem("IOEncoding")
654 """ 648 """
655 self.compileProc = QProcess() 649 self.compileProc = QProcess()
656 args = [] 650 args = []
657 self.buf = "" 651 self.buf = ""
658 652
659 if self.project.getProjectLanguage() in [ 653 if self.project.getProjectLanguage() == "Python3":
660 "Python", "Python2", "Python3" 654 if self.project.getProjectType() in ["PyQt5", "PyQt5C"]:
661 ]:
662 if self.project.getProjectType() in ["Qt4", "Qt4C"]:
663 self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc4')
664 if self.project.getProjectLanguage() in [
665 "Python", "Python2"
666 ]:
667 args.append("-py2")
668 else:
669 args.append("-py3")
670 elif self.project.getProjectType() in ["PyQt5", "PyQt5C"]:
671 self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5') 655 self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5')
672 elif self.project.getProjectType() in ["E6Plugin"]: 656 elif self.project.getProjectType() in ["E6Plugin"]:
673 self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5') 657 self.rccCompiler = Utilities.generatePyQtToolPath('pyrcc5')
674 elif self.project.getProjectType() in ["PySide", "PySideC"]:
675 self.rccCompiler = Utilities.generatePySideToolPath(
676 'pyside-rcc', "1")
677 if self.project.getProjectLanguage() in [
678 "Python", "Python2"
679 ]:
680 args.append("-py2")
681 else:
682 args.append("-py3")
683 elif self.project.getProjectType() in ["PySide2", "PySide2C"]: 658 elif self.project.getProjectType() in ["PySide2", "PySide2C"]:
684 self.rccCompiler = Utilities.generatePySideToolPath( 659 self.rccCompiler = Utilities.generatePySideToolPath(
685 'pyside2-rcc', "2") 660 'pyside2-rcc')
686 else: 661 else:
687 return None 662 return None
688 defaultParameters = self.project.getDefaultRccCompilerParameters() 663 defaultParameters = self.project.getDefaultRccCompilerParameters()
689 rccParameters = self.project.pdata["RCCPARAMS"] 664 rccParameters = self.project.pdata["RCCPARAMS"]
690 if ( 665 if (
705 ): 680 ):
706 args.append("-no-compress") 681 args.append("-no-compress")
707 if rccParameters["PathPrefix"] != defaultParameters["PathPrefix"]: 682 if rccParameters["PathPrefix"] != defaultParameters["PathPrefix"]:
708 args.append("-root") 683 args.append("-root")
709 args.append(rccParameters["PathPrefix"]) 684 args.append(rccParameters["PathPrefix"])
710 elif self.project.getProjectLanguage() == "Ruby":
711 if self.project.getProjectType() == "Qt4":
712 self.rccCompiler = 'rbrcc'
713 if Utilities.isWindowsPlatform():
714 self.rccCompiler += '.exe'
715 else:
716 return None
717 else: 685 else:
718 return None 686 return None
719 687
720 rcc = self.rccCompiler 688 rcc = self.rccCompiler
721 689
722 ofn, ext = os.path.splitext(fn) 690 ofn, ext = os.path.splitext(fn)
723 fn = os.path.join(self.project.ppath, fn) 691 fn = os.path.join(self.project.ppath, fn)
724 692
725 dirname, filename = os.path.split(ofn) 693 dirname, filename = os.path.split(ofn)
726 if self.project.getProjectLanguage() in [ 694 if self.project.getProjectLanguage() == "Python3":
727 "Python", "Python2", "Python3"
728 ]:
729 self.compiledFile = os.path.join( 695 self.compiledFile = os.path.join(
730 dirname, self.RCFilenameFormatPython.format(filename)) 696 dirname, self.RCFilenameFormatPython.format(filename))
731 elif self.project.getProjectLanguage() == "Ruby": 697 elif self.project.getProjectLanguage() == "Ruby":
732 self.compiledFile = os.path.join( 698 self.compiledFile = os.path.join(
733 dirname, self.RCFilenameFormatRuby.format(filename)) 699 dirname, self.RCFilenameFormatRuby.format(filename))
901 progress.setMaximum(len(self.project.pdata["RESOURCES"])) 867 progress.setMaximum(len(self.project.pdata["RESOURCES"]))
902 for fn in self.project.pdata["RESOURCES"]: 868 for fn in self.project.pdata["RESOURCES"]:
903 progress.setValue(i) 869 progress.setValue(i)
904 QApplication.processEvents() 870 QApplication.processEvents()
905 ifn = os.path.join(self.project.ppath, fn) 871 ifn = os.path.join(self.project.ppath, fn)
906 if self.project.getProjectLanguage() in [ 872 if self.project.getProjectLanguage() == "Python3":
907 "Python", "Python2", "Python3"
908 ]:
909 dirname, filename = os.path.split(os.path.splitext(ifn)[0]) 873 dirname, filename = os.path.split(os.path.splitext(ifn)[0])
910 ofn = os.path.join( 874 ofn = os.path.join(
911 dirname, self.RCFilenameFormatPython.format(filename)) 875 dirname, self.RCFilenameFormatPython.format(filename))
912 elif self.project.getProjectLanguage() == "Ruby": 876 elif self.project.getProjectLanguage() == "Ruby":
913 dirname, filename = os.path.split(os.path.splitext(ifn)[0]) 877 dirname, filename = os.path.split(os.path.splitext(ifn)[0])

eric ide

mercurial