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 | |||
@@ -40,6 +40,7 @@ using namespace std; | |||
40 | #include "ipkg.h" | 40 | #include "ipkg.h" |
41 | #include "inputdlg.h" | 41 | #include "inputdlg.h" |
42 | #include "letterpushbutton.h" | 42 | #include "letterpushbutton.h" |
43 | #include "categoryfilterimpl.h" | ||
43 | 44 | ||
44 | #include "global.h" | 45 | #include "global.h" |
45 | 46 | ||
@@ -62,7 +63,7 @@ NetworkPackageManager::NetworkPackageManager( DataManager *dataManager, QWidget | |||
62 | showUninstalledPkgs = false; | 63 | showUninstalledPkgs = false; |
63 | showInstalledPkgs = false; | 64 | showInstalledPkgs = false; |
64 | showUpgradedPkgs = false; | 65 | showUpgradedPkgs = false; |
65 | 66 | categoryFilterEnabled = false; | |
66 | 67 | ||
67 | initGui(); | 68 | initGui(); |
68 | setupConnections(); | 69 | setupConnections(); |
@@ -239,6 +240,13 @@ void NetworkPackageManager :: serverSelected( int ) | |||
239 | continue; | 240 | continue; |
240 | } | 241 | } |
241 | 242 | ||
243 | // Apply the section filter | ||
244 | if ( categoryFilterEnabled && categoryFilter != "" ) | ||
245 | { | ||
246 | if ( it->getSection() == "" || categoryFilter.find( it->getSection().lower() ) == -1 ) | ||
247 | continue; | ||
248 | } | ||
249 | |||
242 | // If the local server, only display installed packages | 250 | // If the local server, only display installed packages |
243 | if ( serverName == LOCAL_SERVER && !it->isInstalled() ) | 251 | if ( serverName == LOCAL_SERVER && !it->isInstalled() ) |
244 | continue; | 252 | continue; |
@@ -295,6 +303,9 @@ void NetworkPackageManager :: serverSelected( int ) | |||
295 | new QCheckListItem( item, QString( "V. Installed - " ) + it->getInstalledVersion() ); | 303 | new QCheckListItem( item, QString( "V. Installed - " ) + it->getInstalledVersion() ); |
296 | } | 304 | } |
297 | } | 305 | } |
306 | |||
307 | new QCheckListItem( item, QString( "Size - " ) + it->getPackageSize() ); | ||
308 | new QCheckListItem( item, QString( "Section - " ) + it->getSection() ); | ||
298 | packagesList->insertItem( item ); | 309 | packagesList->insertItem( item ); |
299 | } | 310 | } |
300 | 311 | ||
@@ -325,10 +336,6 @@ void NetworkPackageManager :: updateServer() | |||
325 | 336 | ||
326 | // Update the current server | 337 | // Update the current server |
327 | // Display dialog | 338 | // Display dialog |
328 | // ProgressDlg *progDlg = new ProgressDlg( this ); | ||
329 | // QString status = "Updating package lists..."; | ||
330 | // progDlg->show(); | ||
331 | // progDlg->setText( status ); | ||
332 | 339 | ||
333 | // Disable buttons to stop silly people clicking lots on them :) | 340 | // Disable buttons to stop silly people clicking lots on them :) |
334 | 341 | ||
@@ -686,7 +693,7 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item ) | |||
686 | msgtext, "Remove", secondButton ) ) | 693 | msgtext, "Remove", secondButton ) ) |
687 | { | 694 | { |
688 | case 0: // Try again or Enter | 695 | case 0: // Try again or Enter |
689 | // option 0 = Remove | 696 | // option 0 = Remove |
690 | item.option = "D"; | 697 | item.option = "D"; |
691 | break; | 698 | break; |
692 | case 1: // Quit or Escape | 699 | case 1: // Quit or Escape |
@@ -743,7 +750,7 @@ void NetworkPackageManager :: letterPushed( QString t ) | |||
743 | packagesList->setSelected( item, true ); | 750 | packagesList->setSelected( item, true ); |
744 | packagesList->ensureItemVisible( item ); | 751 | packagesList->ensureItemVisible( item ); |
745 | break; | 752 | break; |
746 | } | 753 | } |
747 | 754 | ||
748 | item = (QCheckListItem *)item->nextSibling(); | 755 | item = (QCheckListItem *)item->nextSibling(); |
749 | if ( !item ) | 756 | if ( !item ) |
@@ -804,3 +811,45 @@ void NetworkPackageManager :: showUpgradedPackages( bool val ) | |||
804 | showUpgradedPkgs = val; | 811 | showUpgradedPkgs = val; |
805 | serverSelected( -1 ); | 812 | serverSelected( -1 ); |
806 | } | 813 | } |
814 | |||
815 | bool NetworkPackageManager :: filterByCategory( bool val ) | ||
816 | { | ||
817 | if ( val ) | ||
818 | { | ||
819 | if ( categoryFilter == "" ) | ||
820 | { | ||
821 | if ( !setFilterCategory() ) | ||
822 | return false; | ||
823 | } | ||
824 | |||
825 | categoryFilterEnabled = true; | ||
826 | serverSelected( -1 ); | ||
827 | return true; | ||
828 | } | ||
829 | else | ||
830 | { | ||
831 | // Turn off filter | ||
832 | categoryFilterEnabled = false; | ||
833 | serverSelected( -1 ); | ||
834 | return false; | ||
835 | } | ||
836 | } | ||
837 | |||
838 | bool NetworkPackageManager :: setFilterCategory( ) | ||
839 | { | ||
840 | // Get categories; | ||
841 | CategoryFilterImpl dlg( DataManager::getAvailableCategories(), categoryFilter, this ); | ||
842 | if ( dlg.exec() == QDialog::Accepted ) | ||
843 | { | ||
844 | categoryFilter = dlg.getSelectedFilter(); | ||
845 | |||
846 | if ( categoryFilter == "" ) | ||
847 | return false; | ||
848 | |||
849 | categoryFilterEnabled = true; | ||
850 | serverSelected( -1 ); | ||
851 | return true; | ||
852 | } | ||
853 | |||
854 | return false; | ||
855 | } | ||