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 """ |