summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-31 14:05:59 -0600
committerSlávek Banko <slavek.banko@axis.cz>2012-08-26 16:05:33 +0200
commit29768dd7b2ee05ba0f6c1f1f2c0270cc0e237438 (patch)
tree114b4d0736f423d76bcab7c393fc95bdb11f5ef8
parentc89b32ebab33674df362f2262263504d210dde83 (diff)
downloadtdelibs-29768dd7b2ee05ba0f6c1f1f2c0270cc0e237438.tar.gz
tdelibs-29768dd7b2ee05ba0f6c1f1f2c0270cc0e237438.zip
Fix konq filter in list view mode
Select all now only selects shown (filtered) items (cherry picked from commit 06b514847fffb79985e4bcde9f8dcc685c5d9ac5)
-rw-r--r--kdeui/klistview.cpp46
-rw-r--r--kdeui/klistview.h8
2 files changed, 54 insertions, 0 deletions
diff --git a/kdeui/klistview.cpp b/kdeui/klistview.cpp
index e1c5811ca..b52fe6876 100644
--- a/kdeui/klistview.cpp
+++ b/kdeui/klistview.cpp
@@ -2356,6 +2356,52 @@ void KListViewItem::paintCell(TQPainter *p, const TQColorGroup &cg, int column,
TQListViewItem::paintCell(p, _cg, column, width, alignment);
}
+/*!
+ If \a select is TRUE, all the items get selected; otherwise all
+ the items get unselected. This only works in the selection modes \c
+ Multi and \c Extended. In \c Single and \c NoSelection mode the
+ selection of the current item is just set to \a select.
+*/
+
+void KListView::selectAll( bool select )
+{
+ if ( selectionMode() == Multi || selectionMode() == Extended ) {
+ bool b = signalsBlocked();
+ blockSignals( TRUE );
+ bool anything = FALSE;
+ TQListViewItemIterator it( this );
+ while ( it.current() ) {
+ TQListViewItem *i = it.current();
+ if ( select == TRUE ) {
+ if ( (bool)i->isVisible() == TRUE ) {
+ i->setSelected( TRUE );
+ anything = TRUE;
+ }
+ if ( (bool)i->isVisible() == FALSE ) {
+ i->setSelected( FALSE );
+ anything = TRUE;
+ }
+ }
+ else {
+ if ( (bool)i->isSelected() != select ) {
+ i->setSelected( select );
+ anything = TRUE;
+ }
+ }
+ ++it;
+ }
+ blockSignals( b );
+ if ( anything ) {
+ emit selectionChanged();
+// d->useDoubleBuffer = TRUE;
+ triggerUpdate();
+ }
+ } else if ( currentItem() ) {
+ TQListViewItem * i = currentItem();
+ setSelected( i, select );
+ }
+}
+
void KListView::virtual_hook( int, void* )
{ /*BASE::virtual_hook( id, data );*/ }
diff --git a/kdeui/klistview.h b/kdeui/klistview.h
index ee19d61c1..db78b3cfb 100644
--- a/kdeui/klistview.h
+++ b/kdeui/klistview.h
@@ -660,6 +660,14 @@ public slots:
*/
bool tabOrderedRenaming() const;
+ /**
+ * Override TQListView selectAll() so that filtered
+ * items are not selected
+ *
+ * @since 14.0
+ */
+ virtual void selectAll( bool select );
+
protected:
/**
* Determine whether a drop on position @p p would count as