From 5ab7af2bb5d98aef639cbc2ca14f630813fd4fe9 Mon Sep 17 00:00:00 2001 From: andyq Date: Sat, 09 Nov 2002 15:39:15 +0000 Subject: Added filter menu - contains 3 filters - show uninstalled packages, show installed packages and show upgraded packages --- (limited to 'noncore') diff --git a/noncore/settings/aqpkg/mainwin.cpp b/noncore/settings/aqpkg/mainwin.cpp index 3c72f2b..4e9cc12 100644 --- a/noncore/settings/aqpkg/mainwin.cpp +++ b/noncore/settings/aqpkg/mainwin.cpp @@ -37,22 +37,27 @@ MainWindow :: MainWindow( QWidget *p, char *name ) setCaption( "AQPkg - Package Manager" ); // Create our menu - QPopupMenu *help = new QPopupMenu( this ); - - help->insertItem( "&General", this, SLOT(displayHelp()), Qt::CTRL+Qt::Key_H ); + help = new QPopupMenu( this ); + help->insertItem( "&General", this, SLOT(displayHelp()), Qt::CTRL+Qt::Key_G ); help->insertItem( "&About", this, SLOT(displayAbout()), Qt::CTRL+Qt::Key_A ); - QPopupMenu *settings = new QPopupMenu( this ); + settings = new QPopupMenu( this ); settings->insertItem( "&Settings", this, SLOT(displaySettings()), Qt::CTRL+Qt::Key_S ); - QPopupMenu *edit = new QPopupMenu( this ); - edit->insertItem( "&Find", this, SLOT(searchForPackage()), Qt::CTRL+Qt::Key_F ); - edit->insertItem( "&Find Next", this, SLOT(repeatSearchForPackage()), Qt::CTRL+Qt::Key_R ); + edit = new QPopupMenu( this ); + edit->insertItem( "&Find", this, SLOT(searchForPackage()), Qt::CTRL+Qt::Key_I ); + edit->insertItem( "Find &Next", this, SLOT(repeatSearchForPackage()), Qt::CTRL+Qt::Key_N ); + filter = new QPopupMenu( this ); + mnuShowUninstalledPkgsId = filter->insertItem( "Show &Uninstalled Packages", this, SLOT(filterUninstalledPackages()), Qt::CTRL+Qt::Key_U ); + mnuShowInstalledPkgsId = filter->insertItem( "Show In&stalled Packages", this, SLOT(filterInstalledPackages()), Qt::CTRL+Qt::Key_S ); + mnuShowUpgradedPkgsId = filter->insertItem( "Show U&pdated Packages", this, SLOT(filterUpgradedPackages()), Qt::CTRL+Qt::Key_P ); + // Create the main menu - QMenuBar *menu = menuBar(); //new QMenuBar( this ); + menu = menuBar(); //new QMenuBar( this ); menu->insertItem( "&Settings", settings ); menu->insertItem( "&Edit", edit ); + menu->insertItem( "&Filter", filter ); menu->insertItem( "&Help", help ); mgr = new DataManager(); @@ -109,3 +114,71 @@ void MainWindow :: displayAbout() { QMessageBox::about( this, "About AQPkg", 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 ); + +} + +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 ); +} + +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 ); +} diff --git a/noncore/settings/aqpkg/mainwin.h b/noncore/settings/aqpkg/mainwin.h index 267233f..7b6e0ba 100644 --- a/noncore/settings/aqpkg/mainwin.h +++ b/noncore/settings/aqpkg/mainwin.h @@ -36,8 +36,18 @@ public: private: DataManager *mgr; + QMenuBar *menu; + QPopupMenu *help; + QPopupMenu *settings; + QPopupMenu *edit; + QPopupMenu *filter; QWidgetStack *stack; - NetworkPackageManager *networkPkgWindow; + + NetworkPackageManager *networkPkgWindow; + + int mnuShowUninstalledPkgsId; + int mnuShowInstalledPkgsId; + int mnuShowUpgradedPkgsId; public slots: void setDocument( const QString &doc ); @@ -46,5 +56,8 @@ public slots: void repeatSearchForPackage(); void displayAbout(); void displaySettings(); + void filterUninstalledPackages(); + void filterInstalledPackages(); + void filterUpgradedPackages(); }; #endif diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp index 76c7a9c..d43c6ac 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.cpp +++ b/noncore/settings/aqpkg/networkpkgmgr.cpp @@ -56,15 +56,18 @@ NetworkPackageManager::NetworkPackageManager( DataManager *dataManager, QWidget cfg.setGroup( "settings" ); currentlySelectedServer = cfg.readEntry( "selectedServer", "local" ); showJumpTo = cfg.readBoolEntry( "showJumpTo", "true" ); + #endif + + showUninstalledPkgs = false; + showInstalledPkgs = false; + showUpgradedPkgs = false; initGui(); setupConnections(); updateData(); -// progressDlg = 0; -// timerId = startTimer( 100 ); } NetworkPackageManager::~NetworkPackageManager() @@ -75,11 +78,8 @@ void NetworkPackageManager :: timerEvent ( QTimerEvent * ) { killTimer( timerId ); -// showProgressDialog(); // Add server names to listbox updateData(); - -// progressDlg->hide(); } void NetworkPackageManager :: updateData() @@ -223,9 +223,26 @@ void NetworkPackageManager :: serverSelected( int ) QString text = ""; - // If the local server, only display installed packages - if ( serverName == LOCAL_SERVER && !it->isInstalled() ) - continue; + // Apply show only uninstalled packages filter + if ( showUninstalledPkgs && it->isInstalled() ) + continue; + + // Apply show only installed packages filter + if ( showInstalledPkgs && !it->isInstalled() ) + continue; + + // Apply show only new installed packages filter + if ( showUpgradedPkgs ) + { + if ( !it->isInstalled() || + compareVersions( it->getInstalledVersion(), it->getVersion() ) != 1 ) + continue; + } + + // If the local server, only display installed packages + if ( serverName == LOCAL_SERVER && !it->isInstalled() ) + continue; + text += it->getPackageName(); if ( it->isInstalled() ) @@ -769,3 +786,21 @@ void NetworkPackageManager :: searchForPackage( bool findNext ) } } } + +void NetworkPackageManager :: showOnlyUninstalledPackages( bool val ) +{ + showUninstalledPkgs = val; + serverSelected( -1 ); +} + +void NetworkPackageManager :: showOnlyInstalledPackages( bool val ) +{ + showInstalledPkgs = val; + serverSelected( -1 ); +} + +void NetworkPackageManager :: showUpgradedPackages( bool val ) +{ + showUpgradedPkgs = val; + serverSelected( -1 ); +} diff --git a/noncore/settings/aqpkg/networkpkgmgr.h b/noncore/settings/aqpkg/networkpkgmgr.h index 66a8903..937c9b4 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.h +++ b/noncore/settings/aqpkg/networkpkgmgr.h @@ -41,6 +41,10 @@ public: void selectLocalPackage( const QString &pkg ); void updateData(); void searchForPackage( bool findNext ); + void showOnlyUninstalledPackages( bool val ); + void showOnlyInstalledPackages( bool val ); + void showUpgradedPackages( bool val ); + private: DataManager *dataMgr; @@ -56,6 +60,9 @@ private: QString lastSearchText; bool showJumpTo; + bool showUninstalledPkgs; + bool showInstalledPkgs; + bool showUpgradedPkgs; int timerId; void timerEvent ( QTimerEvent * ); -- cgit v0.9.0.2