From: <er...@us...> - 2004-02-07 14:49:16
|
Update of /cvsroot/krusader/krusader_kde3/krusader/Panel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10015/krusader/Panel Modified Files: krdetailedview.cpp Log Message: heiner's 'logical selection mode' patch Index: krdetailedview.cpp =================================================================== RCS file: /cvsroot/krusader/krusader_kde3/krusader/Panel/krdetailedview.cpp,v retrieving revision 1.63 retrieving revision 1.64 diff -C2 -d -r1.63 -r1.64 *** krdetailedview.cpp 7 Feb 2004 11:51:39 -0000 1.63 --- krdetailedview.cpp 7 Feb 2004 12:25:23 -0000 1.64 *************** *** 70,74 **** #define _GroupColumn false // Do Quicksearch ! #define _DoQuicksearch true ////////////////////////////////////////////////////////////////////////// --- 70,76 ---- #define _GroupColumn false // Do Quicksearch ! #define _DoQuicksearch true ! //experimental ! #define _newSelectionHandling ////////////////////////////////////////////////////////////////////////// *************** *** 478,481 **** --- 480,506 ---- if ( !_focused ) emit needFocus(); + #ifdef _newSelectionHandling + if (e->state() & ShiftButton || e->state() & ControlButton || e->state() & AltButton) + { + KListView::contentsMousePressEvent( e ); + return; + } + QListViewItem * i = itemAt( contentsToViewport( e->pos() ) ); + KListView::contentsMousePressEvent( e ); + // if (i != 0) // comment in, if click sould NOT select + // setSelected(i, FALSE); + + if ( krApp->mainView->activePanel->quickSearch->isShown() ) { + krApp->mainView->activePanel->quickSearch->hide(); + krApp->mainView->activePanel->quickSearch->clear(); + krDirUp->setEnabled( true ); + } + if ( krApp->mainView->activePanel->otherPanel->quickSearch->isShown() ) { + krApp->mainView->activePanel->otherPanel->quickSearch->hide(); + krApp->mainView->activePanel->otherPanel->quickSearch->clear(); + krDirUp->setEnabled( true ); + } + return; + #endif KListView::contentsMousePressEvent( e ); } *************** *** 563,566 **** --- 588,653 ---- } switch ( e->key() ) { + #ifdef _newSelectionHandling + case Key_Up : + { + QListViewItem * i = currentItem(); + if (!i) break; + if (e->state() == ShiftButton) setSelected(i, !i->isSelected()); + i = i->itemAbove(); + if (i) {QListView::setCurrentItem(i); QListView::ensureItemVisible(i); /*QListView::setSelectionAnchor(i);*/} + } + break; + case Key_Down : + if ( e->state() == ControlButton ) { // let the panel handle it - jump to command line + e->ignore(); + break; + } else + { + QListViewItem * i = currentItem(); + if (!i) break; + if (e->state() == ShiftButton) setSelected(i, !i->isSelected()); + i = i->itemBelow(); + if (i) {QListView::setCurrentItem(i); QListView::ensureItemVisible(i); /*QListView::setSelectionAnchor(i);*/} + } + break; + case Key_Next: + { + QListViewItem * i = currentItem(), *j; + if (!i) break; + QRect r( itemRect( i ) ); + if (!r.height()) break; + for (int page = visibleHeight()/r.height()-1; page > 0 && (j = i->itemBelow()); --page ) + i = j; + if (i) {QListView::setCurrentItem(i); QListView::ensureItemVisible(i); /*QListView::setSelectionAnchor(i);*/} + break; + } + case Key_Prior: + { + QListViewItem * i = currentItem(), *j; + if (!i) break; + QRect r( itemRect( i ) ); + if (!r.height()) break; + for (int page = visibleHeight()/r.height()-1; page > 0 && (j = i->itemAbove()); --page ) + i = j; + if (i) {QListView::setCurrentItem(i); QListView::ensureItemVisible(i); /*QListView::setSelectionAnchor(i);*/} + break; + } + case Key_Home: + { + QListViewItem * i = firstChild(); + if (i) {QListView::setCurrentItem(i); QListView::ensureItemVisible(i); /*QListView::setSelectionAnchor(i);*/} + break; + } + case Key_End: + { + QListViewItem *i = firstChild(), *j; + while ( (j = i->nextSibling()) ) + i = j; + while ( (j = i->itemBelow()) ) + i = j; + if (i) {QListView::setCurrentItem(i); QListView::ensureItemVisible(i); /*QListView::setSelectionAnchor(i);*/} + break; + } + #endif case Key_Enter : case Key_Return : { *************** *** 611,614 **** --- 698,702 ---- //KListView::keyPressEvent( e ); //break; + #ifndef _newSelectionHandling case Key_Down : if ( e->state() == ControlButton ) { // let the panel handle it *************** *** 618,622 **** KListView::keyPressEvent( e ); break; ! case Key_Delete : // kill file SLOTS->deleteFiles(); return ; --- 706,711 ---- KListView::keyPressEvent( e ); break; ! #endif ! case Key_Delete : // kill file SLOTS->deleteFiles(); return ; *************** *** 794,798 **** if ( item == startItem ) return ; ! if ( caseSensitive ? item->name().startsWith( str ) : item->name().lower().startsWith( str.lower() ) ) { makeItemVisible( item ); setCurrentItem( item->name() ); --- 883,887 ---- if ( item == startItem ) return ; ! if ( caseSensitive?item->name().startsWith( str ):item->name().lower().startsWith( str.lower() ) ) { makeItemVisible( item ); setCurrentItem( item->name() ); |