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 @@ -42,2 +42,3 @@ using namespace std; #include "letterpushbutton.h" +#include "categoryfilterimpl.h" @@ -64,3 +65,3 @@ NetworkPackageManager::NetworkPackageManager( DataManager *dataManager, QWidget showUpgradedPkgs = false; - + categoryFilterEnabled = false; @@ -241,2 +242,9 @@ 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 @@ -297,2 +305,5 @@ void NetworkPackageManager :: serverSelected( int ) } + + new QCheckListItem( item, QString( "Size - " ) + it->getPackageSize() ); + new QCheckListItem( item, QString( "Section - " ) + it->getSection() ); packagesList->insertItem( item ); @@ -327,6 +338,2 @@ void NetworkPackageManager :: updateServer() // Display dialog -// ProgressDlg *progDlg = new ProgressDlg( this ); -// QString status = "Updating package lists..."; -// progDlg->show(); -// progDlg->setText( status ); @@ -688,3 +695,3 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item ) case 0: // Try again or Enter - // option 0 = Remove + // option 0 = Remove item.option = "D"; @@ -745,3 +752,3 @@ void NetworkPackageManager :: letterPushed( QString t ) break; - } + } @@ -806 +813,43 @@ void NetworkPackageManager :: showUpgradedPackages( bool val ) } + +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; +} |