--- a/Project/Project.py Sat May 14 17:30:49 2016 +0200 +++ b/Project/Project.py Sat May 21 19:16:12 2016 +0200 @@ -23,7 +23,7 @@ from PyQt5.QtCore import pyqtSlot, QFile, QFileInfo, pyqtSignal, \ QCryptographicHash, QIODevice, QByteArray, QObject, Qt -from PyQt5.QtGui import QCursor +from PyQt5.QtGui import QCursor, QKeySequence from PyQt5.QtWidgets import QLineEdit, QToolBar, QDialog, QInputDialog, \ QApplication, QMenu, QAction from PyQt5.Qsci import QsciScintilla @@ -71,6 +71,8 @@ @signal newProject() emitted after a new project was generated @signal sourceFile(str) emitted after a project file was read to open the main script + @signal designerFile(str) emitted to open a found designer file + @signal linguistFile(str) emitted to open a found translation file @signal projectOpenedHooks() emitted after a project file was read but before the projectOpened() signal is sent @signal projectOpened() emitted after a project file was read @@ -115,6 +117,8 @@ newProjectHooks = pyqtSignal() newProject = pyqtSignal() sourceFile = pyqtSignal(str) + designerFile = pyqtSignal(str) + linguistFile = pyqtSignal(str) projectOpenedHooks = pyqtSignal() projectOpened = pyqtSignal() projectClosedHooks = pyqtSignal() @@ -214,6 +218,7 @@ self.profiledata = None self.applicationDiagram = None self.loadedDiagram = None + self.__findProjectFileDialog = None def __sourceExtensions(self, language): """ @@ -3548,6 +3553,21 @@ act.triggered.connect(self.__searchNewFiles) self.actions.append(act) + act = E5Action( + self.tr('Search Project File'), + self.tr('Search Project File...'), + QKeySequence(self.tr("Alt+Ctrl+P", "Project|Search Project File")), + 0, + self.actGrp2, 'project_search_project_file') + act.setStatusTip(self.tr( + 'Search for a file in the project list of files.')) + act.setWhatsThis(self.tr( + """<b>Search Project File</b>""" + """<p>This searches for a file in the project list of files.</p>""" + )) + act.triggered.connect(self.__searchProjectFile) + self.actions.append(act) + self.propsAct = E5Action( self.tr('Project properties'), UI.PixmapCache.getIcon("projectProps.png"), @@ -4078,6 +4098,23 @@ Private slot used to handle the search new files action. """ self.__doSearchNewFiles(False, True) + + def __searchProjectFile(self): + """ + Private slot to show the Find Project File dialog. + """ + if self.__findProjectFileDialog is None: + from .QuickFindFileDialog import QuickFindFileDialog + self.__findProjectFileDialog = QuickFindFileDialog(self) + self.__findProjectFileDialog.sourceFile.connect( + self.sourceFile) + self.__findProjectFileDialog.designerFile.connect( + self.designerFile) + self.__findProjectFileDialog.linguistFile.connect( + self.linguistFile) + self.__findProjectFileDialog.show() + self.__findProjectFileDialog.raise_() + self.__findProjectFileDialog.activateWindow() def __doSearchNewFiles(self, AI=True, onUserDemand=False): """