eric7/UI/UserInterface.py

branch
external_find
changeset 9038
90bcfdd63d47
parent 9037
907540e4f741
child 9039
3c8aa997bad8
--- 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):
         """

eric ide

mercurial