UI/Browser.py

changeset 500
c3abc7895a01
parent 476
121633976eca
child 501
5c615a85241a
equal deleted inserted replaced
499:622ab17a68d5 500:c3abc7895a01
42 @signal pixmapEditFile(string) emitted to edit a pixmap file 42 @signal pixmapEditFile(string) emitted to edit a pixmap file
43 @signal svgFile(string) emitted to open a SVG file 43 @signal svgFile(string) emitted to open a SVG file
44 @signal unittestOpen(string) emitted to open a Python file for a unittest 44 @signal unittestOpen(string) emitted to open a Python file for a unittest
45 """ 45 """
46 sourceFile = pyqtSignal((str, ), (str, int), (str, int, str)) 46 sourceFile = pyqtSignal((str, ), (str, int), (str, int, str))
47 designerFile = pyqtSignal(str)
48 linguistFile = pyqtSignal(str)
49 trpreview = pyqtSignal(list)
50 projectFile = pyqtSignal(str)
51 multiProjectFile = pyqtSignal(str)
52 pixmapFile = pyqtSignal(str)
53 pixmapEditFile = pyqtSignal(str)
54 svgFile = pyqtSignal(str)
55 unittestOpen = pyqtSignal(str)
47 56
48 def __init__(self, parent = None): 57 def __init__(self, parent = None):
49 """ 58 """
50 Constructor 59 Constructor
51 60
65 74
66 self.selectedItemsFilter = [BrowserFileItem] 75 self.selectedItemsFilter = [BrowserFileItem]
67 76
68 self.setContextMenuPolicy(Qt.CustomContextMenu) 77 self.setContextMenuPolicy(Qt.CustomContextMenu)
69 self.customContextMenuRequested.connect(self._contextMenuRequested) 78 self.customContextMenuRequested.connect(self._contextMenuRequested)
70 self.connect(self, SIGNAL("activated(const QModelIndex &)"), self._openItem) 79 self.activated.connect(self._openItem)
71 self.connect(self, SIGNAL("expanded(const QModelIndex &)"), self._resizeColumns) 80 self.expanded.connect(self._resizeColumns)
72 self.connect(self, SIGNAL("collapsed(const QModelIndex &)"), self._resizeColumns) 81 self.collapsed.connect(self._resizeColumns)
73 82
74 self.setWhatsThis(QApplication.translate('Browser', 83 self.setWhatsThis(QApplication.translate('Browser',
75 """<b>The Browser Window</b>""" 84 """<b>The Browser Window</b>"""
76 """<p>This allows you to easily navigate the hierachy of directories and""" 85 """<p>This allows you to easily navigate the hierachy of directories and"""
77 """ files on your system, identify the Python programs and open them up in""" 86 """ files on your system, identify the Python programs and open them up in"""
321 elif itm.isRubyFile(): 330 elif itm.isRubyFile():
322 self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Ruby") 331 self.sourceFile[str, int, str].emit(itm.fileName(), 1, "Ruby")
323 elif itm.isDFile(): 332 elif itm.isDFile():
324 self.sourceFile[str, int, str].emit(itm.fileName(), 1, "D") 333 self.sourceFile[str, int, str].emit(itm.fileName(), 1, "D")
325 elif itm.isDesignerFile(): 334 elif itm.isDesignerFile():
326 self.emit(SIGNAL('designerFile'), itm.fileName()) 335 self.designerFile.emit(itm.fileName())
327 elif itm.isLinguistFile(): 336 elif itm.isLinguistFile():
328 if itm.fileExt() == '.ts': 337 if itm.fileExt() == '.ts':
329 self.emit(SIGNAL('linguistFile'), itm.fileName()) 338 self.linguistFile.emit(itm.fileName())
330 else: 339 else:
331 self.emit(SIGNAL('trpreview'), [itm.fileName()]) 340 self.trpreview.emit([itm.fileName()])
332 elif itm.isProjectFile(): 341 elif itm.isProjectFile():
333 self.emit(SIGNAL('projectFile'), itm.fileName()) 342 self.projectFile.emit(itm.fileName())
334 elif itm.isMultiProjectFile(): 343 elif itm.isMultiProjectFile():
335 self.emit(SIGNAL('multiProjectFile'), itm.fileName()) 344 self.multiProjectFile.emit(itm.fileName())
336 elif itm.isIdlFile(): 345 elif itm.isIdlFile():
337 self.sourceFile[str].emit(itm.fileName()) 346 self.sourceFile[str].emit(itm.fileName())
338 elif itm.isResourcesFile(): 347 elif itm.isResourcesFile():
339 self.sourceFile[str].emit(itm.fileName()) 348 self.sourceFile[str].emit(itm.fileName())
340 elif itm.isPixmapFile(): 349 elif itm.isPixmapFile():
341 self.emit(SIGNAL('pixmapFile'), itm.fileName()) 350 self.pixmapFile.emit(itm.fileName())
342 elif itm.isSvgFile(): 351 elif itm.isSvgFile():
343 self.emit(SIGNAL('svgFile'), itm.fileName()) 352 self.svgFile.emit(itm.fileName())
344 else: 353 else:
345 type_ = mimetypes.guess_type(itm.fileName())[0] 354 type_ = mimetypes.guess_type(itm.fileName())[0]
346 if type_ is None or type_.split("/")[0] == "text": 355 if type_ is None or type_.split("/")[0] == "text":
347 self.sourceFile[str].emit(itm.fileName()) 356 self.sourceFile[str].emit(itm.fileName())
348 else: 357 else:
364 itmList = self.getSelectedItems([BrowserFileItem]) 373 itmList = self.getSelectedItems([BrowserFileItem])
365 374
366 for itm in itmList: 375 for itm in itmList:
367 if isinstance(itm, BrowserFileItem): 376 if isinstance(itm, BrowserFileItem):
368 if itm.isPixmapFile(): 377 if itm.isPixmapFile():
369 self.emit(SIGNAL('pixmapEditFile'), itm.fileName()) 378 self.pixmapEditFile.emit(itm.fileName())
370 379
371 def _copyToClipboard(self): 380 def _copyToClipboard(self):
372 """ 381 """
373 Protected method to copy the text shown for an entry to the clipboard. 382 Protected method to copy the text shown for an entry to the clipboard.
374 """ 383 """
395 pyfn = itm.fileName() 404 pyfn = itm.fileName()
396 except AttributeError: 405 except AttributeError:
397 pyfn = None 406 pyfn = None
398 407
399 if pyfn is not None: 408 if pyfn is not None:
400 self.emit(SIGNAL('unittestOpen'), pyfn) 409 self.unittestOpen.emit(pyfn)
401 410
402 def __newToplevelDir(self): 411 def __newToplevelDir(self):
403 """ 412 """
404 Private slot to handle the New toplevel directory popup menu entry. 413 Private slot to handle the New toplevel directory popup menu entry.
405 """ 414 """

eric ide

mercurial