From 53ee298ff7d9427cee30fd1d0e89270168ef3813 Mon Sep 17 00:00:00 2001 From: Vincent Reher Date: Sat, 13 Aug 2022 09:48:46 -0700 Subject: Implemented better fallback when konqlistviewrc/[Settings]/hiddenFileSpec key does not exist Implemented more comprehensive response to user-caused changes to hidden file match criteria Signed-off-by: Vincent Reher --- konqueror/listview/konq_listview.cpp | 55 +++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 13 deletions(-) (limited to 'konqueror/listview/konq_listview.cpp') diff --git a/konqueror/listview/konq_listview.cpp b/konqueror/listview/konq_listview.cpp index 6752dbac1..a611c388d 100644 --- a/konqueror/listview/konq_listview.cpp +++ b/konqueror/listview/konq_listview.cpp @@ -273,7 +273,10 @@ KonqListView::KonqListView( TQWidget *parentWidget, TQObject *parent, const char m_sortColumnIndexPrimary = 0; m_sortColumnIndexAlternate = 1; - m_pListView->m_dirLister->matcher->setCriteria( m_pProps->hiddenFileSpec() ); + TQString hiddenFileSpec = m_pProps->hiddenFileSpec() ; + if ( ! hiddenFileSpec.isNull() ) { + m_pListView->m_dirLister->matcher->setCriteria( hiddenFileSpec ); + } // otherwise we rely on matcher's default criteria setupActions(); @@ -481,31 +484,57 @@ void KonqListView::newIconSize( int size ) void KonqListView::slotChangeHiddenFileMatcher() { - /* - Since the user might be providing *updated* hidden file match properties, - we first need to make sure that we are showing (not hiding) "hidden" files - as defined by the *current* match properties. Otherwise there can be - a lot of confusion! - */ - m_paShowDot->setChecked( TRUE ); - slotShowDot(); - - int result = m_pListView->m_dirLister->matcher->getMatchPropertiesFromUser() ; + bool wasShowingHidden = m_paShowDot->isChecked(); + if ( ! wasShowingHidden ) { + /* + Since the user might be providing *updated* hidden file match properties, + we first need to make sure that we are showing (not hiding) "hidden" files + as defined by the *current* match properties. Otherwise there can be + a lot of confusion! + */ + m_paShowDot->setChecked( TRUE ); + slotShowDot(); + } + int result = m_pListView->m_dirLister->matcher->getMatchPropertiesFromUser( "Konqueror Listview" ) ; switch ( result ) { case TDEIO::HiddenFileMatcher::criteriaUnchanged: + if ( ! wasShowingHidden ) { + m_paShowDot->setChecked( FALSE ); + slotShowDot(); + } return; break; case TDEIO::HiddenFileMatcher::criteriaApplied: - return; + // On-the-fly change break; case TDEIO::HiddenFileMatcher::saveCriteria: m_pProps->setHiddenFileSpec( m_pListView->m_dirLister->matcher->getCriteria() ); break; case TDEIO::HiddenFileMatcher::reloadCriteria: - m_pListView->m_dirLister->matcher->setCriteria( m_pProps->hiddenFileSpec() ); + TQString hiddenFileSpec = m_pProps->hiddenFileSpec() ; + if ( ! hiddenFileSpec.isNull() ) { + // Reload from current listview setting + m_pListView->m_dirLister->matcher->setCriteria( hiddenFileSpec ); + } + else { + // Reload from current systemwide default setting + TDEIO::HiddenFileMatcher *commonMatcher = TDEIO::CommonHiddenFileMatcher::getMatcher(); + m_pListView->m_dirLister->matcher->setCriteria( commonMatcher->getCriteria() ); + } break; } + + // Hidden file match properties WERE changed, so we need to + // ensure that these UI view options continue to work properly: + + // "Group Hidden First" sort option + slotToggleDisplayHiddenFirst(); + + // "Show Hidden Files" option + m_paShowDot->setChecked( wasShowingHidden ); + slotShowDot(); // + } void KonqListView::slotShowDot() -- cgit v1.2.1