diff -r bddcb634a9b8 -r 4ed2573947ff eric6/MicroPython/MicroPythonFileManagerWidget.py --- a/eric6/MicroPython/MicroPythonFileManagerWidget.py Tue Aug 13 16:39:31 2019 +0200 +++ b/eric6/MicroPython/MicroPythonFileManagerWidget.py Tue Aug 13 17:52:58 2019 +0200 @@ -105,7 +105,6 @@ self.deviceFileTreeWidget.customContextMenuRequested.connect( self.__showDeviceContextMenu) - # TODO: add entry to show hidden files self.__localMenu = QMenu(self) self.__localMenu.addAction(self.tr("Change Directory"), self.__changeLocalDirectory) @@ -116,8 +115,12 @@ self.__localMenu.addSeparator() self.__localDelFileAct = self.__localMenu.addAction( self.tr("Delete File"), self.__deleteLocalFile) + self.__localMenu.addSeparator() + act = self.__localMenu.addAction(self.tr("Show Hidden Files")) + act.setCheckable(True) + act.setChecked(Preferences.getMicroPython("ShowHiddenLocal")) + act.triggered[bool].connect(self.__localHiddenChanged) - # TODO: add entry to show hidden files self.__deviceMenu = QMenu(self) if not self.__repl.isMicrobit(): self.__deviceMenu.addAction( @@ -133,6 +136,11 @@ self.__deviceMenu.addSeparator() self.__devDelFileAct = self.__deviceMenu.addAction( self.tr("Delete File"), self.__deleteDeviceFile) + self.__deviceMenu.addSeparator() + act = self.__deviceMenu.addAction(self.tr("Show Hidden Files")) + act.setCheckable(True) + act.setChecked(Preferences.getMicroPython("ShowHiddenDevice")) + act.triggered[bool].connect(self.__deviceHiddenChanged) if not parent.isMicrobit(): self.__deviceMenu.addSeparator() self.__deviceMenu.addAction( @@ -191,7 +199,7 @@ @type str """ self.deviceCwd.setText(dirname) - self.__fileManager.lls(dirname) + self.__newDeviceList() @pyqtSlot(tuple) def __handleLongListFiles(self, filesList): @@ -226,10 +234,12 @@ dirname = dirname[:-1] if localDevice: self.deviceCwd.setText(dirname) + showHidden = Preferences.getMicroPython("ShowHiddenDevice") else: self.localCwd.setText(dirname) + showHidden = Preferences.getMicroPython("ShowHiddenLocal") - filesStatList = listdirStat(dirname) + filesStatList = listdirStat(dirname, showHidden=showHidden) filesList = [( decoratedName(f, s[0], os.path.isdir(os.path.join(dirname, f))), mode2string(s[0]), @@ -357,7 +367,7 @@ self.__listLocalFiles(dirname, True) else: if dirname: - self.__fileManager.lls(dirname) + self.__newDeviceList() else: self.__fileManager.pwd() @@ -426,8 +436,11 @@ localDevice=True) else: deviceCwd = self.deviceCwd.text() - if deviceCwd and deviceCwd != "/": - deviceFilename = deviceCwd + "/" + deviceFilename + if deviceCwd: + if deviceCwd != "/": + deviceFilename = deviceCwd + "/" + deviceFilename + else: + deviceFilename = "/" + deviceFilename self.__fileManager.put( os.path.join(self.localCwd.text(), filename), deviceFilename @@ -536,7 +549,7 @@ @type str """ self.__listLocalFiles(self.localCwd.text()) - self.__fileManager.lls(self.deviceCwd.text()) + self.__newDeviceList() @pyqtSlot(str) def __handleRsyncProgressMessage(self, message): @@ -569,7 +582,10 @@ """ Private slot to initiate a new long list of the device directory. """ - self.__fileManager.lls(self.deviceCwd.text()) + self.__fileManager.lls( + self.deviceCwd.text(), + showHidden=Preferences.getMicroPython("ShowHiddenDevice") + ) ################################################################## ## Context menu methods for the local files below @@ -732,6 +748,17 @@ filename, str(exc)) ) + @pyqtSlot(bool) + def __localHiddenChanged(self, checked): + """ + Private slot handling a change of the local show hidden menu entry. + + @param checked new check state of the action + @type bool + """ + Preferences.setMicroPython("ShowHiddenLocal", checked) + self.on_localReloadButton_clicked() + ################################################################## ## Context menu methods for the device files below ################################################################## @@ -809,10 +836,13 @@ if bool(len(self.deviceFileTreeWidget.selectedItems())): name = self.deviceFileTreeWidget.selectedItems()[0].text(0) cwd = self.deviceCwd.text() - if cwd and cwd != "/": - dirname = cwd + "/" + name[:-1] + if cwd: + if cwd != "/": + dirname = cwd + "/" + name[:-1] + else: + dirname = "/" + name[:-1] else: - dirname = "/" + name[:-1] + dirname = name[:-1] dlg = DeleteFilesConfirmationDialog( self, self.tr("Delete Directory"), @@ -834,10 +864,13 @@ if bool(len(self.deviceFileTreeWidget.selectedItems())): name = self.deviceFileTreeWidget.selectedItems()[0].text(0) cwd = self.deviceCwd.text() - if cwd and cwd != "/": - dirname = cwd + "/" + name[:-1] + if cwd: + if cwd != "/": + dirname = cwd + "/" + name[:-1] + else: + dirname = "/" + name[:-1] else: - dirname = "/" + name[:-1] + dirname = name[:-1] dlg = DeleteFilesConfirmationDialog( self, self.tr("Delete Directory Tree"), @@ -858,10 +891,13 @@ if bool(len(self.deviceFileTreeWidget.selectedItems())): name = self.deviceFileTreeWidget.selectedItems()[0].text(0) dirname = self.deviceCwd.text() - if dirname and dirname != "/": - filename = dirname + "/" + name + if dirname: + if dirname != "/": + filename = dirname + "/" + name + else: + filename = "/" + name else: - filename = "/" + name + filename = name dlg = DeleteFilesConfirmationDialog( self, self.tr("Delete File"), @@ -871,6 +907,17 @@ if dlg.exec_() == QDialog.Accepted: self.__fileManager.delete(filename) + @pyqtSlot(bool) + def __deviceHiddenChanged(self, checked): + """ + Private slot handling a change of the device show hidden menu entry. + + @param checked new check state of the action + @type bool + """ + Preferences.setMicroPython("ShowHiddenDevice", checked) + self.on_deviceReloadButton_clicked() + @pyqtSlot() def __showFileSystemInfo(self): """