summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp
index 3ce7960..6f528a1 100644
--- a/noncore/settings/aqpkg/networkpkgmgr.cpp
+++ b/noncore/settings/aqpkg/networkpkgmgr.cpp
@@ -492,17 +492,33 @@ void NetworkPackageManager :: displayText( const QString &t )
492 492
493void NetworkPackageManager :: letterPushed( QString t ) 493void NetworkPackageManager :: letterPushed( QString t )
494{ 494{
495 QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); 495 QCheckListItem *top = (QCheckListItem *)packagesList->firstChild();
496 QCheckListItem *start = (QCheckListItem *)packagesList->currentItem();
497 if ( packagesList->firstChild() == 0 )
498 return;
499
500 QCheckListItem *item;
501 if ( start == 0 )
502 {
503 item = (QCheckListItem *)packagesList->firstChild();
504 start = top;
505 }
506 else
507 item = (QCheckListItem *)start->nextSibling();
508
509 if ( item == 0 )
510 item = (QCheckListItem *)packagesList->firstChild();
496 do 511 do
497 { 512 {
498 if ( item->text().lower().startsWith( t.lower() ) ) 513 if ( item->text().lower().startsWith( t.lower() ) )
499 { 514 {
500 cout << "Found - item->text()" << endl;
501 packagesList->setSelected( item, true ); 515 packagesList->setSelected( item, true );
502 packagesList->ensureItemVisible( item ); 516 packagesList->ensureItemVisible( item );
503 break; 517 break;
504 } 518 }
505 519
506 item = (QCheckListItem *)item->nextSibling(); 520 item = (QCheckListItem *)item->nextSibling();
507 } while ( item ); 521 if ( !item )
522 item = (QCheckListItem *)packagesList->firstChild();
523 } while ( item != start);
508} 524}