Browse Source

Konqueror: Deselect items that are hidden by the filter during Select and Deselect

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/2/head
Slávek Banko 2 years ago
parent
commit
924d993671
2 changed files with 38 additions and 16 deletions
  1. 18
    8
      konqueror/iconview/konq_iconview.cc
  2. 20
    8
      konqueror/listview/konq_listview.cc

+ 18
- 8
konqueror/iconview/konq_iconview.cc View File

@@ -557,10 +557,15 @@ void KonqKfmIconView::slotSelect()
m_pIconView->blockSignals( true );

TQIconViewItem *it = m_pIconView->firstItem();
while ( it )
{
if ( re.exactMatch( it->text() ) )
it->setSelected( true, true );
while ( it ) {
if ( it->isVisible() ) {
if ( re.exactMatch( it->text() ) ) {
it->setSelected( true, true );
}
}
else {
it->setSelected( false, true );
}
it = it->nextItem();
}

@@ -584,10 +589,15 @@ void KonqKfmIconView::slotUnselect()
m_pIconView->blockSignals( true );

TQIconViewItem *it = m_pIconView->firstItem();
while ( it )
{
if ( re.exactMatch( it->text() ) )
it->setSelected( false, true );
while ( it ) {
if ( it->isVisible() ) {
if ( re.exactMatch( it->text() ) ) {
it->setSelected( false, true );
}
}
else {
it->setSelected( false, true );
}
it = it->nextItem();
}


+ 20
- 8
konqueror/listview/konq_listview.cc View File

@@ -389,17 +389,22 @@ void KonqListView::slotSelect()

for (KonqBaseListViewWidget::iterator it = m_pListView->begin(); it != m_pListView->end(); it++ )
{
if ((m_pListView->automaticSelection()) && (it->isSelected()))
{
if ((m_pListView->automaticSelection()) && (it->isSelected())) {
it->setSelected(FALSE);
//the following line is to prevent that more than one item were selected
//and now get deselected and automaticSelection() was true, this shouldn't happen
//but who knows, aleXXX
m_pListView->deactivateAutomaticSelection();
};
if ( re.exactMatch( it->text(0) ) )
it->setSelected( TRUE);
};
}
if ( it->isVisible() ) {
if ( re.exactMatch( it->text(0) ) ) {
it->setSelected(TRUE);
}
}
else {
it->setSelected(FALSE);
}
}
m_pListView->blockSignals( false );
m_pListView->deactivateAutomaticSelection();
emit m_pListView->selectionChanged();
@@ -418,9 +423,16 @@ void KonqListView::slotUnselect()

m_pListView->blockSignals(TRUE);

for (KonqBaseListViewWidget::iterator it = m_pListView->begin(); it != m_pListView->end(); it++ )
if ( re.exactMatch( it->text(0) ) )
for (KonqBaseListViewWidget::iterator it = m_pListView->begin(); it != m_pListView->end(); it++ ) {
if ( it->isVisible() ) {
if ( re.exactMatch( it->text(0) ) ) {
it->setSelected(FALSE);
}
}
else {
it->setSelected(FALSE);
}
}

m_pListView->blockSignals(FALSE);
m_pListView->deactivateAutomaticSelection();

Loading…
Cancel
Save