Mercurial > octave
changeset 27960:6a37ebaeeb28
fix handling of broken symlinks in file browser (bug #57588)
* files-dock-widget.cc (files_dock_widget): already set the filter for the
file system model here and add QDir::System for system files including
broken symlinks;
(contextmenu_delete): also consider QDir::Hidden and QDir::System entries
for checking if a directory is empty or not;
(notice_settings): add or remove QDir::Hidden flag to/from the current
filters
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Fri, 17 Jan 2020 22:40:15 +0100 |
parents | c20b7290c778 |
children | 27a5cc0614f1 |
files | libgui/src/files-dock-widget.cc |
diffstat | 1 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/files-dock-widget.cc Fri Jan 17 13:27:27 2020 -0600 +++ b/libgui/src/files-dock-widget.cc Fri Jan 17 22:40:15 2020 +0100 @@ -216,6 +216,9 @@ } m_file_system_model = new QFileSystemModel (this); + m_file_system_model->setResolveSymlinks (false); + m_file_system_model->setFilter ( + QDir::System | QDir::NoDotAndDotDot | QDir::AllEntries); QModelIndex rootPathIndex = m_file_system_model->setRootPath (startup_dir.absolutePath ()); @@ -733,8 +736,9 @@ { // see if directory is empty QDir path (info.absoluteFilePath ()); - QList<QFileInfo> fileLst = path.entryInfoList (QDir::AllEntries | - QDir::NoDotAndDotDot); + QList<QFileInfo> fileLst = path.entryInfoList ( + QDir::Hidden | QDir::AllEntries | + QDir::NoDotAndDotDot | QDir::System); if (fileLst.count () != 0) QMessageBox::warning (this, tr ("Delete file/directory"), @@ -883,11 +887,11 @@ m_file_tree_view->setColumnHidden (i + 1, ! settings->value (m_columns_shown_keys.at (i),false).toBool ()); + QDir::Filters current_filter = m_file_system_model->filter (); if (settings->value (m_columns_shown_keys.at (3),false).toBool ()) - m_file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries - | QDir::Hidden); + m_file_system_model->setFilter (current_filter | QDir::Hidden); else - m_file_system_model->setFilter (QDir::NoDotAndDotDot | QDir::AllEntries); + m_file_system_model->setFilter (current_filter & (~QDir::Hidden)); m_file_tree_view->setAlternatingRowColors (settings->value (m_columns_shown_keys.at (4),true).toBool ());