eric7/UI/UserInterface.py

branch
external_find
changeset 9039
3c8aa997bad8
parent 9038
90bcfdd63d47
child 9064
339bb8c8007d
child 9111
4ac66b6c33a4
diff -r 90bcfdd63d47 -r 3c8aa997bad8 eric7/UI/UserInterface.py
--- a/eric7/UI/UserInterface.py	Fri Apr 29 15:40:17 2022 +0200
+++ b/eric7/UI/UserInterface.py	Fri Apr 29 17:49:47 2022 +0200
@@ -944,7 +944,7 @@
         self.__virtualenvManagerWidget = VirtualenvManagerWidget(
             self.virtualenvManager, self)
         
-        self.__FindFileDialog = None
+        self.__findFileDialog = None
         self.__replaceFileDialog = None
         if Preferences.getUI("ShowFindFileWidget"):
             # Create the find in files widget
@@ -961,18 +961,21 @@
         else:
             self.__findFileWidget = None
         
-        # TODO: add separate dialog variant
-        # Create the find location (file) widget
-        from .FindLocationWidget import FindLocationWidget
-        self.__findLocationWidget = FindLocationWidget(self.project, self)
-        self.__findLocationWidget.sourceFile.connect(
-            self.viewmanager.openSourceFile)
-        self.__findLocationWidget.designerFile.connect(self.__designer)
-        self.__findLocationWidget.linguistFile.connect(self.__linguist)
-        self.__findLocationWidget.trpreview.connect(self.__TRPreviewer)
-        self.__findLocationWidget.pixmapFile.connect(self.__showPixmap)
-        self.__findLocationWidget.svgFile.connect(self.__showSvg)
-        self.__findLocationWidget.umlFile.connect(self.__showUml)
+        self.__findLocationDialog = None
+        if Preferences.getUI("ShowFindLocationWidget"):
+            # Create the find location (file) widget
+            from .FindLocationWidget import FindLocationWidget
+            self.__findLocationWidget = FindLocationWidget(self.project, self)
+            self.__findLocationWidget.sourceFile.connect(
+                self.viewmanager.openSourceFile)
+            self.__findLocationWidget.designerFile.connect(self.__designer)
+            self.__findLocationWidget.linguistFile.connect(self.__linguist)
+            self.__findLocationWidget.trpreview.connect(self.__TRPreviewer)
+            self.__findLocationWidget.pixmapFile.connect(self.__showPixmap)
+            self.__findLocationWidget.svgFile.connect(self.__showSvg)
+            self.__findLocationWidget.umlFile.connect(self.__showUml)
+        else:
+            self.__findLocationWidget = None
         
         # Create the VCS Status widget
         from VCS.StatusWidget import StatusWidget
@@ -1095,9 +1098,10 @@
                                   UI.PixmapCache.getIcon("find"),
                                   self.tr("Find/Replace In Files"))
         
-        self.lToolbox.addItem(self.__findLocationWidget,
-                              UI.PixmapCache.getIcon("findLocation"),
-                              self.tr("Find File"))
+        if self.__findLocationWidget:
+            self.lToolbox.addItem(self.__findLocationWidget,
+                                  UI.PixmapCache.getIcon("findLocation"),
+                                  self.tr("Find File"))
         
         self.lToolbox.addItem(self.__vcsStatusWidget,
                               UI.PixmapCache.getIcon("tbVcsStatus"),
@@ -1246,10 +1250,11 @@
                 UI.PixmapCache.getIcon("sbFind96"),
                 self.tr("Find/Replace In Files"))
         
-        self.leftSidebar.addTab(
-            self.__findLocationWidget,
-            UI.PixmapCache.getIcon("sbFindLocation96"),
-            self.tr("Find File"))
+        if self.__findLocationWidget:
+            self.leftSidebar.addTab(
+                self.__findLocationWidget,
+                UI.PixmapCache.getIcon("sbFindLocation96"),
+                self.tr("Find File"))
         
         self.leftSidebar.addTab(
             self.__vcsStatusWidget,
@@ -2339,24 +2344,25 @@
                 self.__activateFindFileWidget)
             self.actions.append(self.findFileActivateAct)
             self.addAction(self.findFileActivateAct)
-
-        self.findLocationActivateAct = EricAction(
-            self.tr("Find File"),
-            self.tr("Find File"),
-            QKeySequence(self.tr("Ctrl+Alt+Shift+L")),
-            0, self,
-            'find_location_activate')
-        self.findLocationActivateAct.setStatusTip(self.tr(
-            "Switch the input focus to the Find File window."))
-        self.findLocationActivateAct.setWhatsThis(self.tr(
-            """<b>Find File</b>"""
-            """<p>This switches the input focus to the Find File window."""
-            """</p>"""
-        ))
-        self.findLocationActivateAct.triggered.connect(
-            self.__activateFindLocationWidget)
-        self.actions.append(self.findLocationActivateAct)
-        self.addAction(self.findLocationActivateAct)
+        
+        if self.__findLocationWidget is not None:
+            self.findLocationActivateAct = EricAction(
+                self.tr("Find File"),
+                self.tr("Find File"),
+                QKeySequence(self.tr("Ctrl+Alt+Shift+L")),
+                0, self,
+                'find_location_activate')
+            self.findLocationActivateAct.setStatusTip(self.tr(
+                "Switch the input focus to the Find File window."))
+            self.findLocationActivateAct.setWhatsThis(self.tr(
+                """<b>Find File</b>"""
+                """<p>This switches the input focus to the Find File window."""
+                """</p>"""
+            ))
+            self.findLocationActivateAct.triggered.connect(
+                self.__activateFindLocationWidget)
+            self.actions.append(self.findLocationActivateAct)
+            self.addAction(self.findLocationActivateAct)
 
         self.vcsStatusListActivateAct = EricAction(
             self.tr("VCS Status List"),
@@ -3477,7 +3483,8 @@
         self.__menus["subwindow"].addAction(self.pbActivateAct)
         if self.__findFileWidget is not None:
             self.__menus["subwindow"].addAction(self.findFileActivateAct)
-        self.__menus["subwindow"].addAction(self.findLocationActivateAct)
+        if self.__findLocationWidget is not None:
+            self.__menus["subwindow"].addAction(self.findLocationActivateAct)
         self.__menus["subwindow"].addAction(self.vcsStatusListActivateAct)
         if not self.rightSidebar:
             self.__menus["subwindow"].addAction(self.debugViewerActivateAct)
@@ -7179,18 +7186,18 @@
                 openFiles=openFiles)
         else:
             # external dialog
-            if self.__FindFileDialog is None:
+            if self.__findFileDialog is None:
                 from .FindFileWidget import FindFileDialog
-                self.__FindFileDialog = FindFileDialog(self.project)
-                self.__FindFileDialog.sourceFile.connect(
+                self.__findFileDialog = FindFileDialog(self.project, self)
+                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(
+                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)
     
@@ -7207,6 +7214,7 @@
         @type bool (optional)
         """
         if Preferences.getUI("ShowFindFileWidget"):
+            # embedded tool
             self.__activateFindFileWidget()
             self.__findFileWidget.activate(
                 replaceMode=True, txt=txt, searchDir=searchDir,
@@ -7215,7 +7223,7 @@
             # external dialog
             if self.__replaceFileDialog is None:
                 from .FindFileWidget import FindFileDialog
-                self.__replaceFileDialog = FindFileDialog(self.project)
+                self.__replaceFileDialog = FindFileDialog(self.project, self)
                 self.__replaceFileDialog.sourceFile.connect(
                     self.viewmanager.openSourceFile)
                 self.__replaceFileDialog.designerFile.connect(self.__designer)
@@ -7247,8 +7255,24 @@
         """
         Public method to show the Find File widget.
         """
-        # TODO: add separate dialog variant
-        self.__activateFindLocationWidget()
+        if Preferences.getUI("ShowFindLocationWidget"):
+            # embedded tool
+            self.__activateFindLocationWidget()
+        else:
+            # external dialog
+            if self.__findLocationDialog is None:
+                from .FindLocationWidget import FindLocationDialog
+                self.__findLocationDialog = FindLocationDialog(self.project,
+                                                               self)
+                self.__findLocationDialog.sourceFile.connect(
+                    self.viewmanager.openSourceFile)
+                self.__findLocationDialog.designerFile.connect(self.__designer)
+                self.__findLocationDialog.linguistFile.connect(self.__linguist)
+                self.__findLocationDialog.trpreview.connect(self.__TRPreviewer)
+                self.__findLocationDialog.pixmapFile.connect(self.__showPixmap)
+                self.__findLocationDialog.svgFile.connect(self.__showSvg)
+                self.__findLocationDialog.umlFile.connect(self.__showUml)
+            self.__findLocationDialog.activate()
     
     def __activateFindLocationWidget(self):
         """

eric ide

mercurial