--- a/eric6/UI/Browser.py Tue Feb 16 18:25:47 2021 +0100 +++ b/eric6/UI/Browser.py Wed Feb 17 17:51:42 2021 +0100 @@ -10,11 +10,13 @@ import os from PyQt5.QtCore import ( - QModelIndex, pyqtSignal, QUrl, Qt, QCoreApplication, QItemSelectionModel, - QElapsedTimer + pyqtSignal, pyqtSlot, Qt, QUrl, QCoreApplication, QItemSelectionModel, + QModelIndex, QElapsedTimer ) from PyQt5.QtGui import QDesktopServices -from PyQt5.QtWidgets import QTreeView, QApplication, QMenu, QAbstractItemView +from PyQt5.QtWidgets import ( + QTreeView, QApplication, QMenu, QAbstractItemView, QAction +) from E5Gui.E5Application import e5App from E5Gui import E5FileDialog, E5MessageBox @@ -204,6 +206,13 @@ """ Private method to generate the various popup menus. """ + self.showHiddenFilesAct = QAction( + QCoreApplication.translate('Browser', 'Show Hidden Files')) + self.showHiddenFilesAct.setCheckable(True) + self.showHiddenFilesAct.toggled.connect(self._showHidden) + self.showHiddenFilesAct.setChecked( + Preferences.getUI("BrowsersListHiddenFiles")) + # create the popup menu for source files self.sourceMenu = QMenu(self) self.sourceMenu.addAction( @@ -223,6 +232,8 @@ self.sourceMenu.addAction( QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), self._copyToClipboard) + self.sourceMenu.addSeparator() + self.sourceMenu.addAction(self.showHiddenFilesAct) # create the popup menu for general use self.menu = QMenu(self) @@ -242,11 +253,15 @@ self.menu.addAction( QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), self._copyToClipboard) - + self.menu.addSeparator() + self.menu.addAction(self.showHiddenFilesAct) + # create the menu for multiple selected files self.multiMenu = QMenu(self) self.multiMenu.addAction( QCoreApplication.translate('Browser', 'Open'), self._openItem) + self.multiMenu.addSeparator() + self.multiMenu.addAction(self.showHiddenFilesAct) # create the directory menu self.dirMenu = QMenu(self) @@ -274,6 +289,8 @@ self.dirMenu.addAction( QCoreApplication.translate('Browser', 'Copy Path to Clipboard'), self._copyToClipboard) + self.dirMenu.addSeparator() + self.dirMenu.addAction(self.showHiddenFilesAct) # create the attribute menu self.gotoMenu = QMenu(QCoreApplication.translate('Browser', "Goto"), @@ -293,6 +310,8 @@ self.backMenu.addAction( QCoreApplication.translate('Browser', 'New toplevel directory...'), self.__newToplevelDir) + self.backMenu.addSeparator() + self.backMenu.addAction(self.showHiddenFilesAct) def mouseDoubleClickEvent(self, mouseEvent): """ @@ -559,7 +578,19 @@ if fn: cb = QApplication.clipboard() cb.setText(fn) + + @pyqtSlot(bool) + def _showHidden(self, checked): + """ + Protected slot to show or hide hidden files. + @param checked flag indicating the state of the action + @type bool + """ + self.__sortModel.setShowHiddenFiles(checked) + # remember the current state + Preferences.setUI("BrowsersListHiddenFiles", checked) + def handleUnittest(self): """ Public slot to handle the unittest popup menu entry.