--- a/eric7/UI/UserInterface.py Fri Apr 29 11:40:00 2022 +0200 +++ b/eric7/UI/UserInterface.py Fri Apr 29 15:40:17 2022 +0200 @@ -944,18 +944,22 @@ self.__virtualenvManagerWidget = VirtualenvManagerWidget( self.virtualenvManager, self) - # TODO: add separate dialog variant - # Create the find in files widget - from .FindFileWidget import FindFileWidget - self.__findFileWidget = FindFileWidget(self.project, self) - self.__findFileWidget.sourceFile.connect( - self.viewmanager.openSourceFile) - self.__findFileWidget.designerFile.connect(self.__designer) - self.__findFileWidget.linguistFile.connect(self.__linguist) - self.__findFileWidget.trpreview.connect(self.__TRPreviewer) - self.__findFileWidget.pixmapFile.connect(self.__showPixmap) - self.__findFileWidget.svgFile.connect(self.__showSvg) - self.__findFileWidget.umlFile.connect(self.__showUml) + self.__FindFileDialog = None + self.__replaceFileDialog = None + if Preferences.getUI("ShowFindFileWidget"): + # Create the find in files widget + from .FindFileWidget import FindFileWidget + self.__findFileWidget = FindFileWidget(self.project, self) + self.__findFileWidget.sourceFile.connect( + self.viewmanager.openSourceFile) + self.__findFileWidget.designerFile.connect(self.__designer) + self.__findFileWidget.linguistFile.connect(self.__linguist) + self.__findFileWidget.trpreview.connect(self.__TRPreviewer) + self.__findFileWidget.pixmapFile.connect(self.__showPixmap) + self.__findFileWidget.svgFile.connect(self.__showSvg) + self.__findFileWidget.umlFile.connect(self.__showUml) + else: + self.__findFileWidget = None # TODO: add separate dialog variant # Create the find location (file) widget @@ -1086,9 +1090,10 @@ UI.PixmapCache.getIcon("projectViewer"), self.tr("Project-Viewer")) - self.lToolbox.addItem(self.__findFileWidget, - UI.PixmapCache.getIcon("find"), - self.tr("Find/Replace In Files")) + if self.__findFileWidget: + self.lToolbox.addItem(self.__findFileWidget, + UI.PixmapCache.getIcon("find"), + self.tr("Find/Replace In Files")) self.lToolbox.addItem(self.__findLocationWidget, UI.PixmapCache.getIcon("findLocation"), @@ -1235,10 +1240,11 @@ UI.PixmapCache.getIcon("sbProjectViewer96"), self.tr("Project-Viewer")) - self.leftSidebar.addTab( - self.__findFileWidget, - UI.PixmapCache.getIcon("sbFind96"), - self.tr("Find/Replace In Files")) + if self.__findFileWidget: + self.leftSidebar.addTab( + self.__findFileWidget, + UI.PixmapCache.getIcon("sbFind96"), + self.tr("Find/Replace In Files")) self.leftSidebar.addTab( self.__findLocationWidget, @@ -2314,24 +2320,25 @@ self.activateVirtualenvManager) self.actions.append(self.virtualenvManagerActivateAct) self.addAction(self.virtualenvManagerActivateAct) - - self.findFileActivateAct = EricAction( - self.tr("Find/Replace In Files"), - self.tr("Find/Replace In Files"), - QKeySequence(self.tr("Ctrl+Alt+Shift+F")), - 0, self, - 'find_file_activate') - self.findFileActivateAct.setStatusTip(self.tr( - "Switch the input focus to the Find/Replace In Files window.")) - self.findFileActivateAct.setWhatsThis(self.tr( - """<b>Find/Replace In Files</b>""" - """<p>This switches the input focus to the Find/Replace In Files""" - """ window.</p>""" - )) - self.findFileActivateAct.triggered.connect( - self.__activateFindFileWidget) - self.actions.append(self.findFileActivateAct) - self.addAction(self.findFileActivateAct) + + if self.__findFileWidget is not None: + self.findFileActivateAct = EricAction( + self.tr("Find/Replace In Files"), + self.tr("Find/Replace In Files"), + QKeySequence(self.tr("Ctrl+Alt+Shift+F")), + 0, self, + 'find_file_activate') + self.findFileActivateAct.setStatusTip(self.tr( + "Switch the input focus to the Find/Replace In Files window.")) + self.findFileActivateAct.setWhatsThis(self.tr( + """<b>Find/Replace In Files</b>""" + """<p>This switches the input focus to the Find/Replace In""" + """ Files window.</p>""" + )) + self.findFileActivateAct.triggered.connect( + self.__activateFindFileWidget) + self.actions.append(self.findFileActivateAct) + self.addAction(self.findFileActivateAct) self.findLocationActivateAct = EricAction( self.tr("Find File"), @@ -3468,7 +3475,8 @@ self.__menus["subwindow"].addSection(self.tr("Left Side")) self.__menus["subwindow"].addAction(self.mpbActivateAct) self.__menus["subwindow"].addAction(self.pbActivateAct) - self.__menus["subwindow"].addAction(self.findFileActivateAct) + if self.__findFileWidget is not None: + self.__menus["subwindow"].addAction(self.findFileActivateAct) self.__menus["subwindow"].addAction(self.findLocationActivateAct) self.__menus["subwindow"].addAction(self.vcsStatusListActivateAct) if not self.rightSidebar: @@ -7163,11 +7171,28 @@ (defaults to False) @type bool (optional) """ - # TODO: add separate dialog variant - self.__activateFindFileWidget() - self.__findFileWidget.activate( - replaceMode=False, txt=txt, searchDir=searchDir, - openFiles=openFiles) + if Preferences.getUI("ShowFindFileWidget"): + # embedded tool + self.__activateFindFileWidget() + self.__findFileWidget.activate( + replaceMode=False, txt=txt, searchDir=searchDir, + openFiles=openFiles) + else: + # external dialog + if self.__FindFileDialog is None: + from .FindFileWidget import FindFileDialog + self.__FindFileDialog = FindFileDialog(self.project) + self.__FindFileDialog.sourceFile.connect( + self.viewmanager.openSourceFile) + self.__FindFileDialog.designerFile.connect(self.__designer) + self.__FindFileDialog.linguistFile.connect(self.__linguist) + self.__FindFileDialog.trpreview.connect(self.__TRPreviewer) + self.__FindFileDialog.pixmapFile.connect(self.__showPixmap) + self.__FindFileDialog.svgFile.connect(self.__showSvg) + self.__FindFileDialog.umlFile.connect(self.__showUml) + self.__FindFileDialog.activate( + replaceMode=False, txt=txt, searchDir=searchDir, + openFiles=openFiles) def showReplaceFilesWidget(self, txt="", searchDir="", openFiles=False): """ @@ -7181,11 +7206,27 @@ (defaults to False) @type bool (optional) """ - # TODO: add separate dialog variant - self.__activateFindFileWidget() - self.__findFileWidget.activate( - replaceMode=True, txt=txt, searchDir=searchDir, - openFiles=openFiles) + if Preferences.getUI("ShowFindFileWidget"): + self.__activateFindFileWidget() + self.__findFileWidget.activate( + replaceMode=True, txt=txt, searchDir=searchDir, + openFiles=openFiles) + else: + # external dialog + if self.__replaceFileDialog is None: + from .FindFileWidget import FindFileDialog + self.__replaceFileDialog = FindFileDialog(self.project) + self.__replaceFileDialog.sourceFile.connect( + self.viewmanager.openSourceFile) + self.__replaceFileDialog.designerFile.connect(self.__designer) + self.__replaceFileDialog.linguistFile.connect(self.__linguist) + self.__replaceFileDialog.trpreview.connect(self.__TRPreviewer) + self.__replaceFileDialog.pixmapFile.connect(self.__showPixmap) + self.__replaceFileDialog.svgFile.connect(self.__showSvg) + self.__replaceFileDialog.umlFile.connect(self.__showUml) + self.__replaceFileDialog.activate( + replaceMode=True, txt=txt, searchDir=searchDir, + openFiles=openFiles) def __activateFindFileWidget(self): """