UI/Browser.py

changeset 3656
441956d8fce5
parent 3619
4643a9ef7dd6
child 4021
195a471c327b
equal deleted inserted replaced
3654:ffeb85cdc72d 3656:441956d8fce5
9 9
10 from __future__ import unicode_literals 10 from __future__ import unicode_literals
11 11
12 import os 12 import os
13 13
14 from PyQt4.QtCore import QModelIndex, pyqtSignal, QUrl, Qt, qVersion 14 from PyQt5.QtCore import QModelIndex, pyqtSignal, QUrl, Qt, qVersion, \
15 from PyQt4.QtGui import QTreeView, QDesktopServices, QItemSelectionModel, \ 15 QCoreApplication, QItemSelectionModel
16 QApplication, QMenu, QAbstractItemView 16 from PyQt5.QtGui import QDesktopServices
17 from PyQt5.QtWidgets import QTreeView, QApplication, QMenu, QAbstractItemView
17 18
18 from E5Gui.E5Application import e5App 19 from E5Gui.E5Application import e5App
19 from E5Gui import E5FileDialog 20 from E5Gui import E5FileDialog
20 21
21 from .BrowserModel import BrowserModel, BrowserDirectoryItem, \ 22 from .BrowserModel import BrowserModel, BrowserDirectoryItem, \
67 68
68 @param parent parent widget (QWidget) 69 @param parent parent widget (QWidget)
69 """ 70 """
70 super(Browser, self).__init__(parent) 71 super(Browser, self).__init__(parent)
71 72
72 self.setWindowTitle(QApplication.translate('Browser', 'File-Browser')) 73 self.setWindowTitle(QCoreApplication.translate('Browser',
74 'File-Browser'))
73 self.setWindowIcon(UI.PixmapCache.getIcon("eric.png")) 75 self.setWindowIcon(UI.PixmapCache.getIcon("eric.png"))
74 76
75 self.__embeddedBrowser = Preferences.getUI("LayoutFileBrowserEmbedded") 77 self.__embeddedBrowser = Preferences.getUI("LayoutFileBrowserEmbedded")
76 78
77 self.__model = BrowserModel() 79 self.__model = BrowserModel()
87 self.customContextMenuRequested.connect(self._contextMenuRequested) 89 self.customContextMenuRequested.connect(self._contextMenuRequested)
88 self.activated.connect(self._openItem) 90 self.activated.connect(self._openItem)
89 self.expanded.connect(self._resizeColumns) 91 self.expanded.connect(self._resizeColumns)
90 self.collapsed.connect(self._resizeColumns) 92 self.collapsed.connect(self._resizeColumns)
91 93
92 self.setWhatsThis(QApplication.translate( 94 self.setWhatsThis(QCoreApplication.translate(
93 'Browser', 95 'Browser',
94 """<b>The Browser Window</b>""" 96 """<b>The Browser Window</b>"""
95 """<p>This allows you to easily navigate the hierarchy of""" 97 """<p>This allows you to easily navigate the hierarchy of"""
96 """ directories and files on your system, identify the Python""" 98 """ directories and files on your system, identify the Python"""
97 """ programs and open them up in a Source Viewer window. The""" 99 """ programs and open them up in a Source Viewer window. The"""
188 Private method to generate the various popup menus. 190 Private method to generate the various popup menus.
189 """ 191 """
190 # create the popup menu for source files 192 # create the popup menu for source files
191 self.sourceMenu = QMenu(self) 193 self.sourceMenu = QMenu(self)
192 self.sourceMenu.addAction( 194 self.sourceMenu.addAction(
193 QApplication.translate('Browser', 'Open'), self._openItem) 195 QCoreApplication.translate('Browser', 'Open'), self._openItem)
194 self.unittestAct = self.sourceMenu.addAction( 196 self.unittestAct = self.sourceMenu.addAction(
195 QApplication.translate('Browser', 'Run unittest...'), 197 QCoreApplication.translate('Browser', 'Run unittest...'),
196 self.handleUnittest) 198 self.handleUnittest)
197 self.sourceMenu.addAction( 199 self.sourceMenu.addAction(
198 QApplication.translate('Browser', 'Copy Path to Clipboard'), 200 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'),
199 self._copyToClipboard) 201 self._copyToClipboard)
200 202
201 # create the popup menu for general use 203 # create the popup menu for general use
202 self.menu = QMenu(self) 204 self.menu = QMenu(self)
203 self.menu.addAction( 205 self.menu.addAction(
204 QApplication.translate('Browser', 'Open'), self._openItem) 206 QCoreApplication.translate('Browser', 'Open'), self._openItem)
205 self.editPixmapAct = self.menu.addAction( 207 self.editPixmapAct = self.menu.addAction(
206 QApplication.translate('Browser', 'Open in Icon Editor'), 208 QCoreApplication.translate('Browser', 'Open in Icon Editor'),
207 self._editPixmap) 209 self._editPixmap)
208 self.menu.addAction( 210 self.menu.addAction(
209 QApplication.translate('Browser', 'Copy Path to Clipboard'), 211 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'),
210 self._copyToClipboard) 212 self._copyToClipboard)
211 if self.__embeddedBrowser in [1, 2]: 213 if self.__embeddedBrowser in [1, 2]:
212 self.menu.addSeparator() 214 self.menu.addSeparator()
213 self.menu.addAction( 215 self.menu.addAction(
214 QApplication.translate('Browser', 'Configure...'), 216 QCoreApplication.translate('Browser', 'Configure...'),
215 self.__configure) 217 self.__configure)
216 218
217 # create the menu for multiple selected files 219 # create the menu for multiple selected files
218 self.multiMenu = QMenu(self) 220 self.multiMenu = QMenu(self)
219 self.multiMenu.addAction( 221 self.multiMenu.addAction(
220 QApplication.translate('Browser', 'Open'), self._openItem) 222 QCoreApplication.translate('Browser', 'Open'), self._openItem)
221 if self.__embeddedBrowser in [1, 2]: 223 if self.__embeddedBrowser in [1, 2]:
222 self.multiMenu.addSeparator() 224 self.multiMenu.addSeparator()
223 self.multiMenu.addAction( 225 self.multiMenu.addAction(
224 QApplication.translate('Browser', 'Configure...'), 226 QCoreApplication.translate('Browser', 'Configure...'),
225 self.__configure) 227 self.__configure)
226 228
227 # create the directory menu 229 # create the directory menu
228 self.dirMenu = QMenu(self) 230 self.dirMenu = QMenu(self)
229 self.dirMenu.addAction( 231 self.dirMenu.addAction(
230 QApplication.translate('Browser', 'New toplevel directory...'), 232 QCoreApplication.translate('Browser', 'New toplevel directory...'),
231 self.__newToplevelDir) 233 self.__newToplevelDir)
232 self.addAsTopLevelAct = self.dirMenu.addAction( 234 self.addAsTopLevelAct = self.dirMenu.addAction(
233 QApplication.translate('Browser', 'Add as toplevel directory'), 235 QCoreApplication.translate('Browser', 'Add as toplevel directory'),
234 self.__addAsToplevelDir) 236 self.__addAsToplevelDir)
235 self.removeFromToplevelAct = self.dirMenu.addAction( 237 self.removeFromToplevelAct = self.dirMenu.addAction(
236 QApplication.translate('Browser', 'Remove from toplevel'), 238 QCoreApplication.translate('Browser', 'Remove from toplevel'),
237 self.__removeToplevel) 239 self.__removeToplevel)
238 self.dirMenu.addSeparator() 240 self.dirMenu.addSeparator()
239 self.dirMenu.addAction( 241 self.dirMenu.addAction(
240 QApplication.translate('Browser', 'Refresh directory'), 242 QCoreApplication.translate('Browser', 'Refresh directory'),
241 self.__refreshDirectory) 243 self.__refreshDirectory)
242 self.dirMenu.addSeparator() 244 self.dirMenu.addSeparator()
243 self.dirMenu.addAction( 245 self.dirMenu.addAction(
244 QApplication.translate('Browser', 'Find in this directory'), 246 QCoreApplication.translate('Browser', 'Find in this directory'),
245 self.__findInDirectory) 247 self.__findInDirectory)
246 self.dirMenu.addAction( 248 self.dirMenu.addAction(
247 QApplication.translate( 249 QCoreApplication.translate(
248 'Browser', 'Find&&Replace in this directory'), 250 'Browser', 'Find&&Replace in this directory'),
249 self.__replaceInDirectory) 251 self.__replaceInDirectory)
250 self.dirMenu.addAction( 252 self.dirMenu.addAction(
251 QApplication.translate('Browser', 'Copy Path to Clipboard'), 253 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'),
252 self._copyToClipboard) 254 self._copyToClipboard)
253 if self.__embeddedBrowser in [1, 2]: 255 if self.__embeddedBrowser in [1, 2]:
254 self.dirMenu.addSeparator() 256 self.dirMenu.addSeparator()
255 self.dirMenu.addAction( 257 self.dirMenu.addAction(
256 QApplication.translate('Browser', 'Configure...'), 258 QCoreApplication.translate('Browser', 'Configure...'),
257 self.__configure) 259 self.__configure)
258 260
259 # create the attribute menu 261 # create the attribute menu
260 self.gotoMenu = QMenu(self.tr("Goto"), self) 262 self.gotoMenu = QMenu(self.tr("Goto"), self)
261 self.gotoMenu.aboutToShow.connect(self._showGotoMenu) 263 self.gotoMenu.aboutToShow.connect(self._showGotoMenu)
262 self.gotoMenu.triggered.connect(self._gotoAttribute) 264 self.gotoMenu.triggered.connect(self._gotoAttribute)
263 265
264 self.attributeMenu = QMenu(self) 266 self.attributeMenu = QMenu(self)
265 self.attributeMenu.addAction( 267 self.attributeMenu.addAction(
266 QApplication.translate('Browser', 'New toplevel directory...'), 268 QCoreApplication.translate('Browser', 'New toplevel directory...'),
267 self.__newToplevelDir) 269 self.__newToplevelDir)
268 self.attributeMenu.addSeparator() 270 self.attributeMenu.addSeparator()
269 self.attributeMenu.addMenu(self.gotoMenu) 271 self.attributeMenu.addMenu(self.gotoMenu)
270 if self.__embeddedBrowser in [1, 2]: 272 if self.__embeddedBrowser in [1, 2]:
271 self.attributeMenu.addSeparator() 273 self.attributeMenu.addSeparator()
272 self.attributeMenu.addAction( 274 self.attributeMenu.addAction(
273 QApplication.translate('Browser', 'Configure...'), 275 QCoreApplication.translate('Browser', 'Configure...'),
274 self.__configure) 276 self.__configure)
275 277
276 # create the background menu 278 # create the background menu
277 self.backMenu = QMenu(self) 279 self.backMenu = QMenu(self)
278 self.backMenu.addAction( 280 self.backMenu.addAction(
279 QApplication.translate('Browser', 'New toplevel directory...'), 281 QCoreApplication.translate('Browser', 'New toplevel directory...'),
280 self.__newToplevelDir) 282 self.__newToplevelDir)
281 if self.__embeddedBrowser in [1, 2]: 283 if self.__embeddedBrowser in [1, 2]:
282 self.backMenu.addSeparator() 284 self.backMenu.addSeparator()
283 self.backMenu.addAction( 285 self.backMenu.addAction(
284 QApplication.translate('Browser', 'Configure...'), 286 QCoreApplication.translate('Browser', 'Configure...'),
285 self.__configure) 287 self.__configure)
286 288
287 def mouseDoubleClickEvent(self, mouseEvent): 289 def mouseDoubleClickEvent(self, mouseEvent):
288 """ 290 """
289 Protected method of QAbstractItemView. 291 Protected method of QAbstractItemView.
484 """ 486 """
485 Private slot to handle the New toplevel directory popup menu entry. 487 Private slot to handle the New toplevel directory popup menu entry.
486 """ 488 """
487 dname = E5FileDialog.getExistingDirectory( 489 dname = E5FileDialog.getExistingDirectory(
488 None, 490 None,
489 QApplication.translate('Browser', "New toplevel directory"), 491 QCoreApplication.translate('Browser', "New toplevel directory"),
490 "", 492 "",
491 E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) 493 E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
492 if dname: 494 if dname:
493 dname = os.path.abspath(Utilities.toNativeSeparators(dname)) 495 dname = os.path.abspath(Utilities.toNativeSeparators(dname))
494 self.__model.addTopLevelDir(dname) 496 self.__model.addTopLevelDir(dname)

eric ide

mercurial