From 485fae36510cb42690c9df55fae64312b1e656ae Mon Sep 17 00:00:00 2001 From: andyq Date: Sun, 03 Nov 2002 01:19:52 +0000 Subject: Added search for package feature --- (limited to 'noncore/settings') diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index 9f19dfa..0b5a5eb 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp @@ -44,9 +44,13 @@ MainWindow :: MainWindow( QWidget *p, char *name ) QPopupMenu *settings = new QPopupMenu( this ); settings->insertItem( "&Settings", this, SLOT(displaySettings()), Qt::CTRL+Qt::Key_S ); + QPopupMenu *edit = new QPopupMenu( this ); + edit->insertItem( "&Search", this, SLOT(searchForPackage()), Qt::CTRL+Qt::Key_F ); + // Create the main menu QMenuBar *menu = menuBar(); //new QMenuBar( this ); menu->insertItem( "&Settings", settings ); + menu->insertItem( "&Edit", edit ); menu->insertItem( "&Help", help ); mgr = new DataManager(); @@ -89,6 +93,11 @@ void MainWindow :: displayHelp() delete dlg; } +void MainWindow :: searchForPackage() +{ + networkPkgWindow->searchForPackage(); +} + void MainWindow :: displayAbout() { QMessageBox::about( this, "About AQPkg", VERSION_TEXT ); diff --git a/noncore/settings/aqpkg/mainwin.h b/noncore/settings/aqpkg/mainwin.h index a9e290c..9fa0eca 100644 --- a/noncore/settings/aqpkg/mainwin.h +++ b/noncore/settings/aqpkg/mainwin.h @@ -42,6 +42,7 @@ private: public slots: void setDocument( const QString &doc ); void displayHelp(); + void searchForPackage(); void displayAbout(); void displaySettings(); }; diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp index ccce401..78d3df5 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.cpp +++ b/noncore/settings/aqpkg/networkpkgmgr.cpp @@ -470,7 +470,7 @@ void NetworkPackageManager :: applyChanges() // Now for each selected item // deal with it - vector workingPackages; + vector workingPackages; for ( QCheckListItem *item = (QCheckListItem *)packagesList->firstChild(); item != 0 ; item = (QCheckListItem *)item->nextSibling() ) @@ -673,3 +673,35 @@ void NetworkPackageManager :: letterPushed( QString t ) item = (QCheckListItem *)packagesList->firstChild(); } while ( item != start); } + + +void NetworkPackageManager :: searchForPackage() +{ + bool ok = FALSE; + QString searchText = InputDialog::getText( "Search for package", "Enter package to search for", QString::null, &ok, this ).lower(); + if ( ok && !searchText.isEmpty() ) + { + cout << "searching for " << searchText << endl; + // look through package list for text startng at current position + vector workingPackages; + QCheckListItem *start = (QCheckListItem *)packagesList->currentItem(); + if ( start != 0 ) + start = (QCheckListItem *)start->nextSibling(); + + if ( start == 0 ) + start = (QCheckListItem *)packagesList->firstChild(); + + for ( QCheckListItem *item = start; item != 0 ; + item = (QCheckListItem *)item->nextSibling() ) + { + cout << "checking " << item->text().lower() << endl; + if ( item->text().lower().find( searchText ) != -1 ) + { + cout << "matched " << item->text() << endl; + packagesList->ensureItemVisible( item ); + packagesList->setCurrentItem( item ); + break; + } + } + } +} \ No newline at end of file diff --git a/noncore/settings/aqpkg/networkpkgmgr.h b/noncore/settings/aqpkg/networkpkgmgr.h index 3c437b4..3a111ff 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.h +++ b/noncore/settings/aqpkg/networkpkgmgr.h @@ -40,7 +40,7 @@ public: void selectLocalPackage( const QString &pkg ); void updateData(); - + void searchForPackage(); private: DataManager *dataMgr; -- cgit v0.9.0.2