-rw-r--r-- | noncore/settings/aqpkg/mainwin.cpp | 166 | ||||
-rw-r--r-- | noncore/settings/aqpkg/mainwin.h | 26 | ||||
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.cpp | 52 | ||||
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.h | 3 |
4 files changed, 125 insertions, 122 deletions
diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index 4aa83b5..e184f6b 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp @@ -20,16 +20,18 @@ using namespace std; #include <qpe/qpemenubar.h> #include <qpe/qpetoolbar.h> #include <qpe/resource.h> #include <qaction.h> +#include <qlineedit.h> #include <qmenubar.h> #include <qmessagebox.h> #include <qpopupmenu.h> #include <qtimer.h> +#include <qwhatsthis.h> #include <qwidgetstack.h> #include "mainwin.h" #include "progresswidget.h" #include "datamgr.h" #include "networkpkgmgr.h" @@ -53,12 +55,21 @@ MainWindow :: MainWindow() QPEToolBar *bar = new QPEToolBar( this ); bar->setHorizontalStretchable( TRUE ); QPEMenuBar *mb = new QPEMenuBar( bar ); mb->setMargin( 0 ); bar = new QPEToolBar( this ); + // Find toolbar + findBar = new QPEToolBar( this ); + addToolBar( findBar, QMainWindow::Top, true ); + findBar->setHorizontalStretchable( true ); + findEdit = new QLineEdit( findBar ); + QWhatsThis::add( findEdit, tr( "Type the text to search for here." ) ); + findBar->setStretchableWidget( findEdit ); + connect( findEdit, SIGNAL( textChanged( const QString & ) ), this, SLOT( findPackage( const QString & ) ) ); + // Packages menu QPopupMenu *popup = new QPopupMenu( this ); QAction *a = new QAction( tr( "Update lists" ), Resource::loadPixmap( "aqpkg/update" ), QString::null, 0, this, 0 ); a->setWhatsThis( tr( "Click here to update package lists from servers." ) ); connect( a, SIGNAL( activated() ), networkPkgWindow, SLOT( updateServer() ) ); @@ -88,55 +99,61 @@ MainWindow :: MainWindow() mb->insertItem( tr( "Packages" ), popup ); // Search menu popup = new QPopupMenu( this ); a = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to search for a specific package." ) ); - connect( a, SIGNAL( activated() ), this, SLOT( searchForPackage() ) ); + a->setWhatsThis( tr( "Click here to search for text in package names." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( displayFindBar() ) ); a->addTo( popup ); - a = new QAction( tr( "Find next" ), Resource::loadPixmap( "next" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to search for the next package." ) ); - connect( a, SIGNAL( activated() ), this, SLOT( repeatSearchForPackage() ) ); - a->addTo( popup ); + actionFindNext = new QAction( tr( "Find next" ), Resource::loadIconSet( "next" ), QString::null, 0, this, 0 ); + actionFindNext->setEnabled( FALSE ); + actionFindNext->setWhatsThis( tr( "Click here to search for the package name containing the text you are searching for." ) ); + connect( actionFindNext, SIGNAL( activated() ), this, SLOT( repeatFind() ) ); + actionFindNext->addTo( popup ); + actionFindNext->addTo( findBar ); // Show 'quick jump' keypad? popup->insertSeparator(); - a = new QAction( tr( "Filter by category" ), Resource::loadPixmap( "aqpkg/filter" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to list packages belonging to one category." ) ); - connect( a, SIGNAL( activated() ), this, SLOT( filterCategory() ) ); - a->addTo( popup ); + actionFilter = new QAction( tr( "Filter by category" ), Resource::loadPixmap( "aqpkg/filter" ), QString::null, 0, this, 0 ); + actionFilter->setToggleAction( TRUE ); + actionFilter->setWhatsThis( tr( "Click here to list packages belonging to one category." ) ); + connect( actionFilter, SIGNAL( activated() ), this, SLOT( filterCategory() ) ); + actionFilter->addTo( popup ); a = new QAction( tr( "Set filter category" ), QString::null, 0, this, 0 ); a->setWhatsThis( tr( "Click here to change package category to used filter." ) ); connect( a, SIGNAL( activated() ), this, SLOT( setFilterCategory() ) ); a->addTo( popup ); mb->insertItem( tr( "Search" ), popup ); // View menu popup = new QPopupMenu( this ); - a = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) ); - connect( a, SIGNAL( activated() ), this, SLOT( filterUninstalledPackages() ) ); - a->addTo( popup ); + actionUninstalled = new QAction( tr( "Show packages not installed" ), QString::null, 0, this, 0 ); + actionUninstalled->setToggleAction( TRUE ); + actionUninstalled->setWhatsThis( tr( "Click here to show packages available which have not been installed." ) ); + connect( actionUninstalled, SIGNAL( activated() ), this, SLOT( filterUninstalledPackages() ) ); + actionUninstalled->addTo( popup ); - a = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) ); - connect( a, SIGNAL( activated() ), this, SLOT( filterInstalledPackages() ) ); - a->addTo( popup ); + actionInstalled = new QAction( tr( "Show installed packages" ), QString::null, 0, this, 0 ); + actionInstalled->setToggleAction( TRUE ); + actionInstalled->setWhatsThis( tr( "Click here to show packages currently installed on this device." ) ); + connect( actionInstalled, SIGNAL( activated() ), this, SLOT( filterInstalledPackages() ) ); + actionInstalled->addTo( popup ); - a = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 ); - a->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) ); - connect( a, SIGNAL( activated() ), this, SLOT( filterUpgradedPackages() ) ); - a->addTo( popup ); + actionUpdated = new QAction( tr( "Show updated packages" ), QString::null, 0, this, 0 ); + actionUpdated->setToggleAction( TRUE ); + actionUpdated->setWhatsThis( tr( "Click here to show packages currently installed on this device which have a newer version available." ) ); + connect( actionUpdated, SIGNAL( activated() ), this, SLOT( filterUpgradedPackages() ) ); + actionUpdated->addTo( popup ); popup->insertSeparator(); a = new QAction( tr( "Configure" ), Resource::loadPixmap( "aqpkg/config" ), QString::null, 0, this, 0 ); a->setWhatsThis( tr( "Click here to configure this application." ) ); connect( a, SIGNAL( activated() ), this, SLOT( displaySettings() ) ); @@ -152,13 +169,21 @@ MainWindow :: MainWindow() a = new QAction( tr( "About" ), Resource::loadPixmap( "UtilsIcon" ), QString::null, 0, this, 0 ); a->setWhatsThis( tr( "Click here for software version information." ) ); connect( a, SIGNAL( activated() ), this, SLOT( displayAbout() ) ); a->addTo( popup ); mb->insertItem( tr( "View" ), popup ); + + // Finish find toolbar creation + a = new QAction( QString::null, Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); + a->setWhatsThis( tr( "Click here to hide the find toolbar." ) ); + connect( a, SIGNAL( activated() ), this, SLOT( hideFindBar() ) ); + a->addTo( findBar ); + findBar->hide(); + // Create widget stack and add UI widgets stack = new QWidgetStack( this ); stack->addWidget( progressWindow, 2 ); stack->addWidget( networkPkgWindow, 1 ); setCentralWidget( stack ); stack->raiseWidget( progressWindow ); @@ -216,113 +241,76 @@ void MainWindow :: displaySettings() void MainWindow :: displayHelp() { HelpWindow *dlg = new HelpWindow( this ); dlg->exec(); delete dlg; } + +void MainWindow :: displayFindBar() +{ + findBar->show(); + findEdit->setFocus(); +} -void MainWindow :: searchForPackage() +void MainWindow :: repeatFind() { - networkPkgWindow->searchForPackage( false ); + networkPkgWindow->searchForPackage( findEdit->text() ); } -void MainWindow :: repeatSearchForPackage() +void MainWindow :: findPackage( const QString &text ) { - networkPkgWindow->searchForPackage( true ); + actionFindNext->setEnabled( !text.isEmpty() ); + networkPkgWindow->searchForPackage( text ); +} + +void MainWindow :: hideFindBar() +{ + findBar->hide(); } void MainWindow :: displayAbout() { QMessageBox::about( this, tr( "About AQPkg" ), tr( VERSION_TEXT ) ); } - void MainWindow :: filterUninstalledPackages() { - bool val; - if ( filter->isItemChecked( mnuShowUninstalledPkgsId ) ) - { - val = false; - filter->setItemChecked( mnuShowUninstalledPkgsId, false ); - } - else - { - val = true; - filter->setItemChecked( mnuShowUninstalledPkgsId, true ); - } - - filter->setItemChecked( mnuShowInstalledPkgsId, false ); - networkPkgWindow->showOnlyInstalledPackages( false ); - filter->setItemChecked( mnuShowUpgradedPkgsId, false ); - networkPkgWindow->showUpgradedPackages( false ); - - networkPkgWindow->showOnlyUninstalledPackages( val ); - + networkPkgWindow->showOnlyUninstalledPackages( actionUninstalled->isOn() ); + actionInstalled->setOn( FALSE ); + actionUpdated->setOn( FALSE ); } void MainWindow :: filterInstalledPackages() { - bool val; - if ( filter->isItemChecked( mnuShowInstalledPkgsId ) ) - { - val = false; - filter->setItemChecked( mnuShowInstalledPkgsId, false ); - } - else - { - val = true; - filter->setItemChecked( mnuShowInstalledPkgsId, true ); - } - - filter->setItemChecked( mnuShowUninstalledPkgsId, false ); - networkPkgWindow->showOnlyUninstalledPackages( false ); - filter->setItemChecked( mnuShowUpgradedPkgsId, false ); - networkPkgWindow->showUpgradedPackages( false ); - - networkPkgWindow->showOnlyInstalledPackages( val ); + actionUninstalled->setOn( FALSE ); + networkPkgWindow->showOnlyInstalledPackages( actionInstalled->isOn() ); + actionUpdated->setOn( FALSE ); } void MainWindow :: filterUpgradedPackages() { - bool val; - if ( filter->isItemChecked( mnuShowUpgradedPkgsId ) ) - { - val = false; - filter->setItemChecked( mnuShowUpgradedPkgsId, false ); - } - else - { - val = true; - filter->setItemChecked( mnuShowUpgradedPkgsId, true ); - } - - filter->setItemChecked( mnuShowUninstalledPkgsId, false ); - networkPkgWindow->showOnlyUninstalledPackages( false ); - filter->setItemChecked( mnuShowInstalledPkgsId, false ); - networkPkgWindow->showOnlyInstalledPackages( false ); - - networkPkgWindow->showUpgradedPackages( val ); + actionUninstalled->setOn( FALSE ); + actionInstalled->setOn( FALSE ); + networkPkgWindow->showUpgradedPackages( actionUpdated->isOn() ); } void MainWindow :: setFilterCategory() { - if ( networkPkgWindow->setFilterCategory( ) ) - filter->setItemChecked( mnuFilterByCategory, true ); + if ( networkPkgWindow->setFilterCategory() ) + actionFilter->setOn( TRUE ); } void MainWindow :: filterCategory() { - if ( filter->isItemChecked( mnuFilterByCategory ) ) + if ( !actionFilter->isOn() ) { - networkPkgWindow->filterByCategory( false ); - filter->setItemChecked( mnuFilterByCategory, false ); + networkPkgWindow->filterByCategory( FALSE ); } else { - if ( networkPkgWindow->filterByCategory( true ) ) - filter->setItemChecked( mnuFilterByCategory, true ); + actionFilter->setOn( networkPkgWindow->filterByCategory( TRUE ) ); } } void MainWindow :: raiseMainWidget() { stack->raiseWidget( networkPkgWindow ); diff --git a/noncore/settings/aqpkg/mainwin.h b/noncore/settings/aqpkg/mainwin.h index 028ef5b..ef67cc9 100644 --- a/noncore/settings/aqpkg/mainwin.h +++ b/noncore/settings/aqpkg/mainwin.h @@ -17,16 +17,16 @@ #ifndef MAINWIN_H #define MAINWIN_H #include <qmainwindow.h> #include <qpixmap.h> -//#include <qwidgetstack.h> class QWidgetStack; class QPEToolBar; +class QLineEdit; class QAction; class ProgressWidget; class NetworkPackageManager; class DataManager; class MainWindow :public QMainWindow @@ -37,20 +37,24 @@ public: MainWindow(); ~MainWindow(); private: DataManager *mgr; - QMenuBar *menu; - QPopupMenu *help; - QPopupMenu *settings; - QPopupMenu *edit; - QPopupMenu *filter; QWidgetStack *stack; - QAction *actionUpgrade; - QAction *actionDownload; + + QPEToolBar *findBar; + QLineEdit *findEdit; + QAction *actionFindNext; + QAction *actionFilter; + QAction *actionUpgrade; + QAction *actionDownload; + QAction *actionUninstalled; + QAction *actionInstalled; + QAction *actionUpdated; + QPixmap iconDownload; QPixmap iconRemove; NetworkPackageManager *networkPkgWindow; ProgressWidget *progressWindow; @@ -60,14 +64,16 @@ private: int mnuFilterByCategory; int mnuSetFilterCategory; public slots: void setDocument( const QString &doc ); void displayHelp(); - void searchForPackage(); - void repeatSearchForPackage(); + void displayFindBar(); + void repeatFind(); + void findPackage( const QString & ); + void hideFindBar(); void displayAbout(); void displaySettings(); void filterUninstalledPackages(); void filterInstalledPackages(); void filterUpgradedPackages(); void filterCategory(); diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp index 91afe02..c209589 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.cpp +++ b/noncore/settings/aqpkg/networkpkgmgr.cpp @@ -257,23 +257,23 @@ void NetworkPackageManager :: serverSelected( int, bool raiseProgress ) // If the local server, only display installed packages if ( serverName == LOCAL_SERVER && !it->isInstalled() ) continue; - text += it->getPackageName(); + text.append( it->getPackageName() ); if ( it->isInstalled() ) { - text += " (installed)"; + text.append( " (installed)" ); // If a different version of package is available, postfix it with an * if ( it->getVersion() != it->getInstalledVersion() ) { if ( compareVersions( it->getInstalledVersion(), it->getVersion() ) == 1 ) - text += "*"; + text.append( "*" ); } } QCheckListItem *item = new QCheckListItem( packagesList, text, QCheckListItem::CheckBox ); if ( it->isInstalled() ) @@ -287,35 +287,35 @@ void NetworkPackageManager :: serverSelected( int, bool raiseProgress ) else { if ( it->getInstalledTo() ) destName = it->getInstalledTo()->getDestinationName(); } if ( destName != "" ) - new QCheckListItem( item, QString( tr( "Installed To - " ) ) + destName ); + new QCheckListItem( item, QString( tr( "Installed To - %1" ).arg( destName ) ) ); } if ( !it->isPackageStoredLocally() ) { - new QCheckListItem( item, QString( tr( "Description - " ) ) + it->getDescription() ); - new QCheckListItem( item, QString( tr( "Size - " ) ) + it->getPackageSize() ); - new QCheckListItem( item, QString( tr( "Section - " ) ) + it->getSection() ); + new QCheckListItem( item, QString( tr( "Description - %1" ).arg( it->getDescription() ) ) ); + new QCheckListItem( item, QString( tr( "Size - %1" ).arg( it->getPackageSize() ) ) ); + new QCheckListItem( item, QString( tr( "Section - %1" ).arg( it->getSection() ) ) ); } else - new QCheckListItem( item, QString( tr( "Filename - " ) ) + it->getFilename() ); + new QCheckListItem( item, QString( tr( "Filename - %1" ).arg( it->getFilename() ) ) ); if ( serverName == LOCAL_SERVER ) { - new QCheckListItem( item, QString( tr( "V. Installed - " ) ) + it->getVersion() ); + new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( it->getVersion() ) ) ); } else { - new QCheckListItem( item, QString( tr( "V. Available - " ) ) + it->getVersion() ); + new QCheckListItem( item, QString( tr( "V. Available - %1" ).arg( it->getVersion() ) ) ); if ( it->getLocalPackage() ) { if ( it->isInstalled() ) - new QCheckListItem( item, QString( tr( "V. Installed - " ) ) + it->getInstalledVersion() ); + new QCheckListItem( item, QString( tr( "V. Installed - %1" ).arg( it->getInstalledVersion() ) ) ); } } packagesList->insertItem( item ); } @@ -369,12 +369,13 @@ void NetworkPackageManager :: updateServer() } void NetworkPackageManager :: upgradePackages() { // We're gonna do an upgrade of all packages // First warn user that this isn't recommended + // TODO - ODevice???? QString text = tr( "WARNING: Upgrading while\nOpie/Qtopia is running\nis NOT recommended!\n\nAre you sure?\n" ); QMessageBox warn( tr( "Warning" ), text, QMessageBox::Warning, QMessageBox::Yes, QMessageBox::No | QMessageBox::Escape | QMessageBox::Default , 0, this ); warn.adjustSize(); @@ -770,23 +771,17 @@ void NetworkPackageManager :: letterPushed( QString t ) if ( !item ) item = (QCheckListItem *)packagesList->firstChild(); } while ( item != start); } -void NetworkPackageManager :: searchForPackage( bool findNext ) +void NetworkPackageManager :: searchForPackage( const QString &text ) { - bool ok = false; - if ( !findNext || lastSearchText.isEmpty() ) - lastSearchText = InputDialog::getText( tr( "Search for package" ), tr( "Enter package to search for" ), lastSearchText, &ok, this ).lower(); - else - ok = true; - - if ( ok && !lastSearchText.isEmpty() ) + if ( !text.isEmpty() ) { - cout << "searching for " << lastSearchText << endl; + cout << "searching for " << text << endl; // look through package list for text startng at current position vector<InstallData> workingPackages; QCheckListItem *start = (QCheckListItem *)packagesList->currentItem(); if ( start != 0 ) start = (QCheckListItem *)start->nextSibling(); @@ -794,13 +789,13 @@ void NetworkPackageManager :: searchForPackage( bool findNext ) 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( lastSearchText ) != -1 ) + if ( item->text().lower().find( text ) != -1 ) { cout << "matched " << item->text() << endl; packagesList->ensureItemVisible( item ); packagesList->setCurrentItem( item ); break; } @@ -808,24 +803,39 @@ void NetworkPackageManager :: searchForPackage( bool findNext ) } } void NetworkPackageManager :: showOnlyUninstalledPackages( bool val ) { showUninstalledPkgs = val; + if ( val ) + { + showInstalledPkgs = FALSE; + showUpgradedPkgs = FALSE; + } serverSelected( -1 ); } void NetworkPackageManager :: showOnlyInstalledPackages( bool val ) { showInstalledPkgs = val; + if ( val ) + { + showUninstalledPkgs = FALSE; + showUpgradedPkgs = FALSE; + } serverSelected( -1 ); } void NetworkPackageManager :: showUpgradedPackages( bool val ) { showUpgradedPkgs = val; + if ( val ) + { + showUninstalledPkgs = FALSE; + showInstalledPkgs = FALSE; + } serverSelected( -1 ); } bool NetworkPackageManager :: filterByCategory( bool val ) { if ( val ) diff --git a/noncore/settings/aqpkg/networkpkgmgr.h b/noncore/settings/aqpkg/networkpkgmgr.h index efef898..bd005e2 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.h +++ b/noncore/settings/aqpkg/networkpkgmgr.h @@ -38,13 +38,13 @@ public: /** destructor */ ~NetworkPackageManager(); void setDataManager( DataManager *dm ); void selectLocalPackage( const QString &pkg ); void updateData(); - void searchForPackage( bool findNext ); + void searchForPackage( const QString & ); void showOnlyUninstalledPackages( bool val ); void showOnlyInstalledPackages( bool val ); void showUpgradedPackages( bool val ); bool filterByCategory( bool val ); bool setFilterCategory(); @@ -52,13 +52,12 @@ private: DataManager *dataMgr; QComboBox *serversList; QListView *packagesList; QString currentlySelectedServer; - QString lastSearchText; QString categoryFilter; bool categoryFilterEnabled; bool showJumpTo; bool showUninstalledPkgs; bool showInstalledPkgs; |