UI/Browser.py

changeset 2099
afde0e9110f7
parent 2094
88620e11c67c
child 2302
f29e9405c851
equal deleted inserted replaced
2097:c5809ca16182 2099:afde0e9110f7
75 self.__sortModel = BrowserSortFilterProxyModel() 75 self.__sortModel = BrowserSortFilterProxyModel()
76 self.__sortModel.setSourceModel(self.__model) 76 self.__sortModel.setSourceModel(self.__model)
77 self.setModel(self.__sortModel) 77 self.setModel(self.__sortModel)
78 78
79 self.selectedItemsFilter = [BrowserFileItem] 79 self.selectedItemsFilter = [BrowserFileItem]
80
81 self._activating = False
80 82
81 self.setContextMenuPolicy(Qt.CustomContextMenu) 83 self.setContextMenuPolicy(Qt.CustomContextMenu)
82 self.customContextMenuRequested.connect(self._contextMenuRequested) 84 self.customContextMenuRequested.connect(self._contextMenuRequested)
83 self.activated.connect(self._openItem) 85 self.activated.connect(self._openItem)
84 self.expanded.connect(self._resizeColumns) 86 self.expanded.connect(self._resizeColumns)
365 """ 367 """
366 itmList = self.getSelectedItems( 368 itmList = self.getSelectedItems(
367 [BrowserFileItem, BrowserClassItem, 369 [BrowserFileItem, BrowserClassItem,
368 BrowserMethodItem, BrowserClassAttributeItem]) 370 BrowserMethodItem, BrowserClassAttributeItem])
369 371
370 for itm in itmList: 372 if not self._activating:
371 if isinstance(itm, BrowserFileItem): 373 self._activating = True
372 if itm.isPython2File(): 374 for itm in itmList:
373 self.sourceFile[str].emit(itm.fileName()) 375 if isinstance(itm, BrowserFileItem):
374 elif itm.isPython3File(): 376 if itm.isPython2File():
375 self.sourceFile[str].emit(itm.fileName()) 377 self.sourceFile[str].emit(itm.fileName())
376 elif itm.isRubyFile(): 378 elif itm.isPython3File():
377 self.sourceFile[str, int, str].emit(itm.fileName(), -1, "Ruby") 379 self.sourceFile[str].emit(itm.fileName())
378 elif itm.isDFile(): 380 elif itm.isRubyFile():
379 self.sourceFile[str, int, str].emit(itm.fileName(), -1, "D") 381 self.sourceFile[str, int, str].emit(itm.fileName(), -1, "Ruby")
380 elif itm.isDesignerFile(): 382 elif itm.isDFile():
381 self.designerFile.emit(itm.fileName()) 383 self.sourceFile[str, int, str].emit(itm.fileName(), -1, "D")
382 elif itm.isLinguistFile(): 384 elif itm.isDesignerFile():
383 if itm.fileExt() == '.ts': 385 self.designerFile.emit(itm.fileName())
384 self.linguistFile.emit(itm.fileName()) 386 elif itm.isLinguistFile():
387 if itm.fileExt() == '.ts':
388 self.linguistFile.emit(itm.fileName())
389 else:
390 self.trpreview.emit([itm.fileName()])
391 elif itm.isProjectFile():
392 self.projectFile.emit(itm.fileName())
393 elif itm.isMultiProjectFile():
394 self.multiProjectFile.emit(itm.fileName())
395 elif itm.isIdlFile():
396 self.sourceFile[str].emit(itm.fileName())
397 elif itm.isResourcesFile():
398 self.sourceFile[str].emit(itm.fileName())
399 elif itm.isPixmapFile():
400 self.pixmapFile.emit(itm.fileName())
401 elif itm.isSvgFile():
402 self.svgFile.emit(itm.fileName())
385 else: 403 else:
386 self.trpreview.emit([itm.fileName()]) 404 type_ = mimetypes.guess_type(itm.fileName())[0]
387 elif itm.isProjectFile(): 405 if type_ is None or type_.split("/")[0] == "text":
388 self.projectFile.emit(itm.fileName()) 406 self.sourceFile[str].emit(itm.fileName())
389 elif itm.isMultiProjectFile(): 407 else:
390 self.multiProjectFile.emit(itm.fileName()) 408 QDesktopServices.openUrl(QUrl(itm.fileName()))
391 elif itm.isIdlFile(): 409 elif isinstance(itm, BrowserClassItem):
392 self.sourceFile[str].emit(itm.fileName()) 410 self.sourceFile[str, int].emit(itm.fileName(),
393 elif itm.isResourcesFile(): 411 itm.classObject().lineno)
394 self.sourceFile[str].emit(itm.fileName()) 412 elif isinstance(itm, BrowserMethodItem):
395 elif itm.isPixmapFile(): 413 self.sourceFile[str, int].emit(itm.fileName(),
396 self.pixmapFile.emit(itm.fileName()) 414 itm.functionObject().lineno)
397 elif itm.isSvgFile(): 415 elif isinstance(itm, BrowserClassAttributeItem):
398 self.svgFile.emit(itm.fileName()) 416 self.sourceFile[str, int].emit(itm.fileName(),
399 else: 417 itm.attributeObject().lineno)
400 type_ = mimetypes.guess_type(itm.fileName())[0] 418 self._activating = False
401 if type_ is None or type_.split("/")[0] == "text":
402 self.sourceFile[str].emit(itm.fileName())
403 else:
404 QDesktopServices.openUrl(QUrl(itm.fileName()))
405 elif isinstance(itm, BrowserClassItem):
406 self.sourceFile[str, int].emit(itm.fileName(),
407 itm.classObject().lineno)
408 elif isinstance(itm, BrowserMethodItem):
409 self.sourceFile[str, int].emit(itm.fileName(),
410 itm.functionObject().lineno)
411 elif isinstance(itm, BrowserClassAttributeItem):
412 self.sourceFile[str, int].emit(itm.fileName(),
413 itm.attributeObject().lineno)
414 419
415 def _editPixmap(self): 420 def _editPixmap(self):
416 """ 421 """
417 Protected slot to handle the open in icon editor popup menu entry. 422 Protected slot to handle the open in icon editor popup menu entry.
418 """ 423 """

eric ide

mercurial