Diffstat (limited to 'noncore/settings/aqpkg/networkpkgmgr.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.cpp | 63 |
1 files changed, 56 insertions, 7 deletions
diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp index 188f90d..0814121 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.cpp +++ b/noncore/settings/aqpkg/networkpkgmgr.cpp @@ -41,4 +41,5 @@ using namespace std; #include "inputdlg.h" #include "letterpushbutton.h" +#include "categoryfilterimpl.h" #include "global.h" @@ -63,5 +64,5 @@ NetworkPackageManager::NetworkPackageManager( DataManager *dataManager, QWidget showInstalledPkgs = false; showUpgradedPkgs = false; - + categoryFilterEnabled = false; initGui(); @@ -240,4 +241,11 @@ void NetworkPackageManager :: serverSelected( int ) } + // Apply the section filter + if ( categoryFilterEnabled && categoryFilter != "" ) + { + if ( it->getSection() == "" || categoryFilter.find( it->getSection().lower() ) == -1 ) + continue; + } + // If the local server, only display installed packages if ( serverName == LOCAL_SERVER && !it->isInstalled() ) @@ -296,4 +304,7 @@ void NetworkPackageManager :: serverSelected( int ) } } + + new QCheckListItem( item, QString( "Size - " ) + it->getPackageSize() ); + new QCheckListItem( item, QString( "Section - " ) + it->getSection() ); packagesList->insertItem( item ); } @@ -326,8 +337,4 @@ void NetworkPackageManager :: updateServer() // Update the current server // Display dialog -// ProgressDlg *progDlg = new ProgressDlg( this ); -// QString status = "Updating package lists..."; -// progDlg->show(); -// progDlg->setText( status ); // Disable buttons to stop silly people clicking lots on them :) @@ -687,5 +694,5 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item ) { case 0: // Try again or Enter - // option 0 = Remove + // option 0 = Remove item.option = "D"; break; @@ -744,5 +751,5 @@ void NetworkPackageManager :: letterPushed( QString t ) packagesList->ensureItemVisible( item ); break; - } + } item = (QCheckListItem *)item->nextSibling(); @@ -805,2 +812,44 @@ void NetworkPackageManager :: showUpgradedPackages( bool val ) serverSelected( -1 ); } + +bool NetworkPackageManager :: filterByCategory( bool val ) +{ + if ( val ) + { + if ( categoryFilter == "" ) + { + if ( !setFilterCategory() ) + return false; + } + + categoryFilterEnabled = true; + serverSelected( -1 ); + return true; + } + else + { + // Turn off filter + categoryFilterEnabled = false; + serverSelected( -1 ); + return false; + } +} + +bool NetworkPackageManager :: setFilterCategory( ) +{ + // Get categories; + CategoryFilterImpl dlg( DataManager::getAvailableCategories(), categoryFilter, this ); + if ( dlg.exec() == QDialog::Accepted ) + { + categoryFilter = dlg.getSelectedFilter(); + + if ( categoryFilter == "" ) + return false; + + categoryFilterEnabled = true; + serverSelected( -1 ); + return true; + } + + return false; +} |