eric6/UI/Browser.py

changeset 8109
486984bb52e3
parent 7923
91e843545d9a
child 8114
b7abbf3f82a3
equal deleted inserted replaced
8108:a42ae6be4cc3 8109:486984bb52e3
8 """ 8 """
9 9
10 import os 10 import os
11 11
12 from PyQt5.QtCore import ( 12 from PyQt5.QtCore import (
13 QModelIndex, pyqtSignal, QUrl, Qt, QCoreApplication, QItemSelectionModel, 13 pyqtSignal, pyqtSlot, Qt, QUrl, QCoreApplication, QItemSelectionModel,
14 QElapsedTimer 14 QModelIndex, QElapsedTimer
15 ) 15 )
16 from PyQt5.QtGui import QDesktopServices 16 from PyQt5.QtGui import QDesktopServices
17 from PyQt5.QtWidgets import QTreeView, QApplication, QMenu, QAbstractItemView 17 from PyQt5.QtWidgets import (
18 QTreeView, QApplication, QMenu, QAbstractItemView, QAction
19 )
18 20
19 from E5Gui.E5Application import e5App 21 from E5Gui.E5Application import e5App
20 from E5Gui import E5FileDialog, E5MessageBox 22 from E5Gui import E5FileDialog, E5MessageBox
21 23
22 from Project.ProjectBrowserModel import ProjectBrowserSimpleDirectoryItem 24 from Project.ProjectBrowserModel import ProjectBrowserSimpleDirectoryItem
202 204
203 def __createPopupMenus(self): 205 def __createPopupMenus(self):
204 """ 206 """
205 Private method to generate the various popup menus. 207 Private method to generate the various popup menus.
206 """ 208 """
209 self.showHiddenFilesAct = QAction(
210 QCoreApplication.translate('Browser', 'Show Hidden Files'))
211 self.showHiddenFilesAct.setCheckable(True)
212 self.showHiddenFilesAct.toggled.connect(self._showHidden)
213 self.showHiddenFilesAct.setChecked(
214 Preferences.getUI("BrowsersListHiddenFiles"))
215
207 # create the popup menu for source files 216 # create the popup menu for source files
208 self.sourceMenu = QMenu(self) 217 self.sourceMenu = QMenu(self)
209 self.sourceMenu.addAction( 218 self.sourceMenu.addAction(
210 QCoreApplication.translate('Browser', 'Open'), self._openItem) 219 QCoreApplication.translate('Browser', 'Open'), self._openItem)
211 self.unittestAct = self.sourceMenu.addAction( 220 self.unittestAct = self.sourceMenu.addAction(
221 self.__refreshSource) 230 self.__refreshSource)
222 self.sourceMenu.addSeparator() 231 self.sourceMenu.addSeparator()
223 self.sourceMenu.addAction( 232 self.sourceMenu.addAction(
224 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), 233 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'),
225 self._copyToClipboard) 234 self._copyToClipboard)
235 self.sourceMenu.addSeparator()
236 self.sourceMenu.addAction(self.showHiddenFilesAct)
226 237
227 # create the popup menu for general use 238 # create the popup menu for general use
228 self.menu = QMenu(self) 239 self.menu = QMenu(self)
229 self.menu.addAction( 240 self.menu.addAction(
230 QCoreApplication.translate('Browser', 'Open'), self._openItem) 241 QCoreApplication.translate('Browser', 'Open'), self._openItem)
240 self.__showMimeType) 251 self.__showMimeType)
241 self.menu.addSeparator() 252 self.menu.addSeparator()
242 self.menu.addAction( 253 self.menu.addAction(
243 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), 254 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'),
244 self._copyToClipboard) 255 self._copyToClipboard)
245 256 self.menu.addSeparator()
257 self.menu.addAction(self.showHiddenFilesAct)
258
246 # create the menu for multiple selected files 259 # create the menu for multiple selected files
247 self.multiMenu = QMenu(self) 260 self.multiMenu = QMenu(self)
248 self.multiMenu.addAction( 261 self.multiMenu.addAction(
249 QCoreApplication.translate('Browser', 'Open'), self._openItem) 262 QCoreApplication.translate('Browser', 'Open'), self._openItem)
263 self.multiMenu.addSeparator()
264 self.multiMenu.addAction(self.showHiddenFilesAct)
250 265
251 # create the directory menu 266 # create the directory menu
252 self.dirMenu = QMenu(self) 267 self.dirMenu = QMenu(self)
253 self.dirMenu.addAction( 268 self.dirMenu.addAction(
254 QCoreApplication.translate('Browser', 'New toplevel directory...'), 269 QCoreApplication.translate('Browser', 'New toplevel directory...'),
272 'Browser', 'Find && Replace in this directory'), 287 'Browser', 'Find && Replace in this directory'),
273 self.__replaceInDirectory) 288 self.__replaceInDirectory)
274 self.dirMenu.addAction( 289 self.dirMenu.addAction(
275 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), 290 QCoreApplication.translate('Browser', 'Copy Path to Clipboard'),
276 self._copyToClipboard) 291 self._copyToClipboard)
292 self.dirMenu.addSeparator()
293 self.dirMenu.addAction(self.showHiddenFilesAct)
277 294
278 # create the attribute menu 295 # create the attribute menu
279 self.gotoMenu = QMenu(QCoreApplication.translate('Browser', "Goto"), 296 self.gotoMenu = QMenu(QCoreApplication.translate('Browser', "Goto"),
280 self) 297 self)
281 self.gotoMenu.aboutToShow.connect(self._showGotoMenu) 298 self.gotoMenu.aboutToShow.connect(self._showGotoMenu)
291 # create the background menu 308 # create the background menu
292 self.backMenu = QMenu(self) 309 self.backMenu = QMenu(self)
293 self.backMenu.addAction( 310 self.backMenu.addAction(
294 QCoreApplication.translate('Browser', 'New toplevel directory...'), 311 QCoreApplication.translate('Browser', 'New toplevel directory...'),
295 self.__newToplevelDir) 312 self.__newToplevelDir)
313 self.backMenu.addSeparator()
314 self.backMenu.addAction(self.showHiddenFilesAct)
296 315
297 def mouseDoubleClickEvent(self, mouseEvent): 316 def mouseDoubleClickEvent(self, mouseEvent):
298 """ 317 """
299 Protected method of QAbstractItemView. 318 Protected method of QAbstractItemView.
300 319
557 fn = "" 576 fn = ""
558 577
559 if fn: 578 if fn:
560 cb = QApplication.clipboard() 579 cb = QApplication.clipboard()
561 cb.setText(fn) 580 cb.setText(fn)
562 581
582 @pyqtSlot(bool)
583 def _showHidden(self, checked):
584 """
585 Protected slot to show or hide hidden files.
586
587 @param checked flag indicating the state of the action
588 @type bool
589 """
590 self.__sortModel.setShowHiddenFiles(checked)
591 # remember the current state
592 Preferences.setUI("BrowsersListHiddenFiles", checked)
593
563 def handleUnittest(self): 594 def handleUnittest(self):
564 """ 595 """
565 Public slot to handle the unittest popup menu entry. 596 Public slot to handle the unittest popup menu entry.
566 """ 597 """
567 try: 598 try:

eric ide

mercurial