UI/Browser.py

changeset 2099
afde0e9110f7
parent 2094
88620e11c67c
child 2302
f29e9405c851
diff -r c5809ca16182 -r afde0e9110f7 UI/Browser.py
--- a/UI/Browser.py	Wed Oct 03 17:55:56 2012 +0200
+++ b/UI/Browser.py	Wed Oct 03 19:15:04 2012 +0200
@@ -78,6 +78,8 @@
         
         self.selectedItemsFilter = [BrowserFileItem]
         
+        self._activating = False
+        
         self.setContextMenuPolicy(Qt.CustomContextMenu)
         self.customContextMenuRequested.connect(self._contextMenuRequested)
         self.activated.connect(self._openItem)
@@ -367,50 +369,53 @@
             [BrowserFileItem, BrowserClassItem,
              BrowserMethodItem, BrowserClassAttributeItem])
         
-        for itm in itmList:
-            if isinstance(itm, BrowserFileItem):
-                if itm.isPython2File():
-                    self.sourceFile[str].emit(itm.fileName())
-                elif itm.isPython3File():
-                    self.sourceFile[str].emit(itm.fileName())
-                elif itm.isRubyFile():
-                    self.sourceFile[str, int, str].emit(itm.fileName(), -1, "Ruby")
-                elif itm.isDFile():
-                    self.sourceFile[str, int, str].emit(itm.fileName(), -1, "D")
-                elif itm.isDesignerFile():
-                    self.designerFile.emit(itm.fileName())
-                elif itm.isLinguistFile():
-                    if itm.fileExt() == '.ts':
-                        self.linguistFile.emit(itm.fileName())
+        if not self._activating:
+            self._activating = True
+            for itm in itmList:
+                if isinstance(itm, BrowserFileItem):
+                    if itm.isPython2File():
+                        self.sourceFile[str].emit(itm.fileName())
+                    elif itm.isPython3File():
+                        self.sourceFile[str].emit(itm.fileName())
+                    elif itm.isRubyFile():
+                        self.sourceFile[str, int, str].emit(itm.fileName(), -1, "Ruby")
+                    elif itm.isDFile():
+                        self.sourceFile[str, int, str].emit(itm.fileName(), -1, "D")
+                    elif itm.isDesignerFile():
+                        self.designerFile.emit(itm.fileName())
+                    elif itm.isLinguistFile():
+                        if itm.fileExt() == '.ts':
+                            self.linguistFile.emit(itm.fileName())
+                        else:
+                            self.trpreview.emit([itm.fileName()])
+                    elif itm.isProjectFile():
+                        self.projectFile.emit(itm.fileName())
+                    elif itm.isMultiProjectFile():
+                        self.multiProjectFile.emit(itm.fileName())
+                    elif itm.isIdlFile():
+                        self.sourceFile[str].emit(itm.fileName())
+                    elif itm.isResourcesFile():
+                        self.sourceFile[str].emit(itm.fileName())
+                    elif itm.isPixmapFile():
+                        self.pixmapFile.emit(itm.fileName())
+                    elif itm.isSvgFile():
+                        self.svgFile.emit(itm.fileName())
                     else:
-                        self.trpreview.emit([itm.fileName()])
-                elif itm.isProjectFile():
-                    self.projectFile.emit(itm.fileName())
-                elif itm.isMultiProjectFile():
-                    self.multiProjectFile.emit(itm.fileName())
-                elif itm.isIdlFile():
-                    self.sourceFile[str].emit(itm.fileName())
-                elif itm.isResourcesFile():
-                    self.sourceFile[str].emit(itm.fileName())
-                elif itm.isPixmapFile():
-                    self.pixmapFile.emit(itm.fileName())
-                elif itm.isSvgFile():
-                    self.svgFile.emit(itm.fileName())
-                else:
-                    type_ = mimetypes.guess_type(itm.fileName())[0]
-                    if type_ is None or type_.split("/")[0] == "text":
-                        self.sourceFile[str].emit(itm.fileName())
-                    else:
-                        QDesktopServices.openUrl(QUrl(itm.fileName()))
-            elif isinstance(itm, BrowserClassItem):
-                self.sourceFile[str, int].emit(itm.fileName(),
-                    itm.classObject().lineno)
-            elif isinstance(itm, BrowserMethodItem):
-                self.sourceFile[str, int].emit(itm.fileName(),
-                    itm.functionObject().lineno)
-            elif isinstance(itm, BrowserClassAttributeItem):
-                self.sourceFile[str, int].emit(itm.fileName(),
-                    itm.attributeObject().lineno)
+                        type_ = mimetypes.guess_type(itm.fileName())[0]
+                        if type_ is None or type_.split("/")[0] == "text":
+                            self.sourceFile[str].emit(itm.fileName())
+                        else:
+                            QDesktopServices.openUrl(QUrl(itm.fileName()))
+                elif isinstance(itm, BrowserClassItem):
+                    self.sourceFile[str, int].emit(itm.fileName(),
+                        itm.classObject().lineno)
+                elif isinstance(itm, BrowserMethodItem):
+                    self.sourceFile[str, int].emit(itm.fileName(),
+                        itm.functionObject().lineno)
+                elif isinstance(itm, BrowserClassAttributeItem):
+                    self.sourceFile[str, int].emit(itm.fileName(),
+                        itm.attributeObject().lineno)
+            self._activating = False
         
     def _editPixmap(self):
         """

eric ide

mercurial